Application module: Layered interconnect module design ISO/TS 10303-1698: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 constant definitions
   4.3 ARM type definitions
   4.4 ARM entity definitions
   4.5 ARM subtype constraint definitions
   4.6 ARM function definitions
   4.7 ARM rule definition
5 Module interpreted model
   5.1 Mapping specification
   5.2 MIM EXPRESS short listing
     5.2.1 MIM type definitions
     5.2.2 MIM entity definitions
     5.2.3 MIM subtype constraint definitions

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 Layered interconnect module design 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 Layered_interconnect_module_design_arm schema and identifies the necessary external references.

For implementation of Laminate_components (e.g., Land), there are three mechanisms available to instantiate the component. The first is via a Next_assembly_usage; the second is via a Structured_layout_component_sub_assembly_relationship; the third is via the subtype of Structured_layout_component_sub_assembly_relationship that is a Footprint_occurrence_sub_assembly_relationship. In this edition of this part of ISO 10303, the mechanism to instantiate the component as part of a padstack is the Structured_layout_component_sub_assembly_relationship supertype and not a padstack specific subtype.

All Laminate_components are either contributing to individual Stratum or are Inter_stratum_features that contribute to multiple Stratum. A Laminate_component that is not an Inter_stratum_feature will contribute to a Stratum_feature that contributes to a single Stratum.

The Layered_interconnect_module_design_view is composed of the set of Stratum that result from the application of Stratum_feature on an individual basis and of Inter_stratum_feature that are applied on a collective basis.

For CAD applications that generate negative images for material, support is provided for regularized Boolean operations through the use of Material_removal_laminate_components in order to accurately represent the design intent.

Stratum_feature on Design_layer_stratum and the plated form of Inter_stratum_feature implement the connectivity required for the Layered_interconnect_module_design_view. Connectivity traceability is supported by explicit division of a Physical_network into horizontal and vertical sub-networks represented by Intra_stratum_join_relationship and Inter_stratum_join_relationship respectively. Layer_connection_point is provided to bind the connectivity graph to a point domain. This part of ISO 10303 provides that connectivity is established between two components of a Stratum_feature when a Layer_connection_point that is associated with one component is within the point domain of the other component. Establishment of guards necessary to guarantee that a location is within a point domain should take into consideration the source CAD system precision, and the capability of the intended receiving application. Some CAD systems require that traces shall be connected only at the terminus of the centreline of the trace and in that case a post-processor will need to create additional trace instances as part of the post processing conversion process. Sufficient options are provided for representing the parameters associated with traces to ensure an unambiguous representation.

The point domain of each Stratum is disjoint from the point domain of any other Stratum in the Layered_interconnect_module_design_view. The point domain of each Stratum_feature is disjoint from the point domain of any other Stratum_feature in the Layered_interconnect_module_design_view. The vertical pattern layer irregularity due to plating or other sequential processing is ignored in the layered model.

EXPRESS specification:

*)
SCHEMA Layered_interconnect_module_design_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 Component_grouping_arm;    --  ISO/TS 10303-1656

USE FROM Edge_shape_feature_arm;    --  ISO/TS 10303-1673

USE FROM Footprint_definition_arm;    --  ISO/TS 10303-1646

USE FROM Assembly_component_placement_requirements_arm;    --  ISO/TS 10303-1634

USE FROM Land_arm;    --  ISO/TS 10303-1692

USE FROM Layered_interconnect_module_with_printed_component_design_arm;    --  ISO/TS 10303-1700

REFERENCE FROM Assembly_component_arm    --  ISO/TS 10303-1802
  (get_assemblies);

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

REFERENCE FROM Physical_unit_2d_design_view_arm    --  ISO/TS 10303-1724
  (pu2dv_has_shape,
   pu2dv_typeof);
(*

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

Component_grouping_arm ISO/TS 10303-1656
Edge_shape_feature_arm ISO/TS 10303-1673
Footprint_definition_arm ISO/TS 10303-1646
Assembly_component_placement_requirements_arm ISO/TS 10303-1634
Land_arm ISO/TS 10303-1692
Layered_interconnect_module_with_printed_component_design_arm ISO/TS 10303-1700
Assembly_component_arm ISO/TS 10303-1802
Support_resource_arm ISO/TS 10303-1800
Physical_unit_2d_design_view_arm ISO/TS 10303-1724

NOTE 2   See Annex C, Figures C.1, C.2, C.3, C.4, C.5, C.6, C.7, C.8, C.9, C.10, C.11, C.12, C.13, C.14and C.15 for a graphical representation of this schema.

4.2 ARM constant definitions

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

EXPRESS specification:

*)
CONSTANT
(*

4.2.1 Pre_defined_physical_network_group_types

A Pre_defined_physical_network_group_types is a constant list of types for the Pre_defined_physical_network_group.

EXPRESS specification:

*)
  Pre_defined_physical_network_group_types : SET[0:?] OF STRING :=
   [ 'differential pair',
     'balanced length',
     'coaxial group',
     'multi line bus'];
(*

4.2.2 Pre_defined_physical_network_group_relation_types

A Pre_defined_physical_network_group_relation_types is a constant list of types for the Pre_defined_physical_network_group_element_relationship.

EXPRESS specification:

*)
  Pre_defined_physical_network_group_relation_types : SET[0:?] OF STRING :=
   [ 'group to higher order group',
     'group to higher ranking group',
     'element to ordered multiple line bus'];
(*


*)
END_CONSTANT;
(*

4.3 ARM type definitions

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

4.3.1 area_component_templates   EXPRESS-G

The area_component_templates type allows for the designation of the data types Stratum_feature_template, and Fill_area_template.

EXPRESS specification:

*)
TYPE area_component_templates = SELECT
   (Stratum_feature_template,
    Fill_area_template);
END_TYPE;
(*

4.3.2 bare_die_component_or_packaged_component   EXPRESS-G

The bare_die_component_or_packaged_component type is an extensible list of alternate data types. Additional alternate data types are specified in select data types that extend the bare_die_component_or_packaged_component type.

NOTE   This empty extensible select requires extension in a further module to ensure that entities that refer to it have at least one valid instantiation.

EXPRESS specification:

*)
TYPE bare_die_component_or_packaged_component = EXTENSIBLE GENERIC_ENTITY SELECT;
END_TYPE;
(*

4.3.3 bare_die_terminal_or_packaged_part_terminal   EXPRESS-G

The bare_die_terminal_or_packaged_part_terminal type is an extensible list of alternate data types. Additional alternate data types are specified in select data types that extend the bare_die_terminal_or_packaged_part_terminal type.

NOTE   This empty extensible select requires extension in a further module to ensure that entities that refer to it have at least one valid instantiation.

EXPRESS specification:

*)
TYPE bare_die_terminal_or_packaged_part_terminal = EXTENSIBLE GENERIC_ENTITY SELECT;
END_TYPE;
(*

4.3.4 component_feature_or_stratum_surface   EXPRESS-G

The component_feature_or_stratum_surface type is an extensible list of alternate data types that allows for the designation of the data types Component_feature, and Stratum_surface.

NOTE   The list of entity data types may be extended in application modules that use the constructs of this module.

EXPRESS specification:

*)
TYPE component_feature_or_stratum_surface = EXTENSIBLE GENERIC_ENTITY SELECT
   (Component_feature,
    Stratum_surface);
END_TYPE;
(*

4.3.5 design_or_documentation_stratum   EXPRESS-G

The design_or_documentation_stratum type allows for the designation of the data types Design_layer_stratum, and Documentation_layer_stratum.

EXPRESS specification:

*)
TYPE design_or_documentation_stratum = SELECT
   (Design_layer_stratum,
    Documentation_layer_stratum);
END_TYPE;
(*

4.3.6 limd_documented_element_select   EXPRESS-G

The limd_documented_element_select type is an extension of the documented_element_select type. It adds the data type stratum_concept to the list of alternate data types.

EXPRESS specification:

*)
TYPE limd_documented_element_select = SELECT BASED_ON documented_element_select WITH
   (stratum_concept);
END_TYPE;
(*

4.3.7 limd_external_identification_item   EXPRESS-G

The limd_external_identification_item type is an extension of the external_identification_item type. It adds the data types Externally_defined_physical_network_group, Externally_defined_physical_network_group_element_relationship, Stratum_feature_based_derived_pattern, Stratum, and Laminate_component to the list of alternate data types.

EXPRESS specification:

*)
TYPE limd_external_identification_item = SELECT BASED_ON external_identification_item WITH
   (Externally_defined_physical_network_group,
    Externally_defined_physical_network_group_element_relationship,
    Stratum_feature_based_derived_pattern,
    Stratum,
    Laminate_component);
END_TYPE;
(*

4.3.8 limd_groupable_item   EXPRESS-G

The limd_groupable_item type is an extension of the groupable_item type. It adds the data types Generic_physical_network, and Stratum to the list of alternate data types.

EXPRESS specification:

*)
TYPE limd_groupable_item = SELECT BASED_ON groupable_item WITH
   (Generic_physical_network,
    Stratum);
END_TYPE;
(*

4.3.9 limd_requirement_assignment_item   EXPRESS-G

The limd_requirement_assignment_item type is an extension of the requirement_assignment_item type. It adds the data types Layered_interconnect_module_design_view, and Stratum_feature_conductive_join to the list of alternate data types.

EXPRESS specification:

*)
TYPE limd_requirement_assignment_item = SELECT BASED_ON requirement_assignment_item WITH
   (Layered_interconnect_module_design_view,
    Stratum_feature_conductive_join);
END_TYPE;
(*

4.3.10 limd_restriction_basis_item   EXPRESS-G

The limd_restriction_basis_item type is an extension of the restriction_basis_item type. It adds the data type stratum_concept to the list of alternate data types.

EXPRESS specification:

*)
TYPE limd_restriction_basis_item = SELECT BASED_ON restriction_basis_item WITH
   (stratum_concept);
END_TYPE;
(*

4.3.11 limd_sf_shape_select   EXPRESS-G

The limd_sf_shape_select type is an extensible list of alternate data types. Additional alternate data types are specified in select data types that extend the limd_sf_shape_select type.

NOTE   This empty extensible select requires extension in a further module to ensure that entities that refer to it have at least one valid instantiation.

EXPRESS specification:

*)
TYPE limd_sf_shape_select = EXTENSIBLE GENERIC_ENTITY SELECT;
END_TYPE;
(*

4.3.12 limd_stratum_shape_model_select   EXPRESS-G

The limd_stratum_shape_model_select type is an extensible list of alternate data types. Additional alternate data types are specified in select data types that extend the limd_stratum_shape_model_select type.

NOTE   This empty extensible select requires extension in a further module to ensure that entities that refer to it have at least one valid instantiation.

EXPRESS specification:

*)
TYPE limd_stratum_shape_model_select = EXTENSIBLE GENERIC_ENTITY SELECT;
END_TYPE;
(*

4.3.13 limd_usage_concept   EXPRESS-G

The limd_usage_concept type is an extension of the usage_concept type. It adds the data types Component_termination_passage_template_terminal, and Via_template_terminal to the list of alternate data types.

EXPRESS specification:

*)
TYPE limd_usage_concept = SELECT BASED_ON usage_concept WITH
   (Component_termination_passage_template_terminal,
    Via_template_terminal);
END_TYPE;
(*

4.3.14 material_or_specification   EXPRESS-G

The material_or_specification type allows for the designation of the data types Predefined_requirement_view_definition, and Material_identification.

EXPRESS specification:

*)
TYPE material_or_specification = SELECT
   (Predefined_requirement_view_definition,
    Material_identification);
END_TYPE;
(*

4.3.15 material_removal_feature_template_or_parametric_template   EXPRESS-G

The material_removal_feature_template_or_parametric_template type allows for the designation of the data types Material_removal_feature_template, and Parametric_template.

EXPRESS specification:

*)
TYPE material_removal_feature_template_or_parametric_template = SELECT
   (Material_removal_feature_template,
    Parametric_template);
END_TYPE;
(*

4.3.16 special_symbol_component   EXPRESS-G

The special_symbol_component type allows for the designation of the data types Single_stratum_special_symbol_component, and Multi_stratum_special_symbol_component.

EXPRESS specification:

*)
TYPE special_symbol_component = SELECT
   (Single_stratum_special_symbol_component,
    Multi_stratum_special_symbol_component);
END_TYPE;
(*

4.3.17 stratum_concept   EXPRESS-G

The stratum_concept type is an extensible list of alternate data types that allows for the designation of the data types Laminate_component, Inter_stratum_feature, Stratum_feature, Stratum, Stratum_surface, and Structured_layout_component.

NOTE   The list of entity data types may be extended in application modules that use the constructs of this module.

EXPRESS specification:

*)
TYPE stratum_concept = EXTENSIBLE GENERIC_ENTITY SELECT
   (Laminate_component,
    Inter_stratum_feature,
    Stratum_feature,
    Stratum,
    Stratum_surface,
    Structured_layout_component);
END_TYPE;
(*

4.3.18 stratum_feature_or_stratum   EXPRESS-G

The stratum_feature_or_stratum type allows for the designation of the data types Stratum_feature, and Stratum.

EXPRESS specification:

*)
TYPE stratum_feature_or_stratum = SELECT
   (Stratum_feature,
    Stratum);
END_TYPE;
(*

4.3.19 stratum_feature_template_component_or_stratum   EXPRESS-G

The stratum_feature_template_component_or_stratum type allows for the designation of the data types Stratum_feature_template_component, and Stratum.

EXPRESS specification:

*)
TYPE stratum_feature_template_component_or_stratum = SELECT
   (Stratum_feature_template_component,
    Stratum);
END_TYPE;
(*

4.3.20 stratum_feature_template_or_parametric_template   EXPRESS-G

The stratum_feature_template_or_parametric_template type allows for the designation of the data types Stratum_feature_template, and Parametric_template.

EXPRESS specification:

*)
TYPE stratum_feature_template_or_parametric_template = SELECT
   (Stratum_feature_template,
    Parametric_template);
END_TYPE;
(*

4.3.21 stratum_surface_designation   EXPRESS-G

A stratum_surface_designation lists the types of stratum surface.

EXPRESS specification:

*)
TYPE stratum_surface_designation = ENUMERATION OF
   (average_surface,
    primary_surface,
    secondary_surface);
END_TYPE;
(*

Enumerated item definitions:

average_surface: specifies that stratum surface is the average;

primary_surface: specifies that stratum surface is primary;

secondary_surface: specifies that stratum surface is secondary.

4.3.22 terminal_or_inter_stratum_feature   EXPRESS-G

The terminal_or_inter_stratum_feature type is an extensible list of alternate data types that allows for the designation of the data types Embedded_physical_component_terminal, Inter_stratum_feature, Interconnect_module_terminal, and Printed_component_join_terminal.

NOTE   The list of entity data types may be extended in application modules that use the constructs of this module.

EXPRESS specification:

*)
TYPE terminal_or_inter_stratum_feature = EXTENSIBLE GENERIC_ENTITY SELECT
   (Embedded_physical_component_terminal,
    Inter_stratum_feature,
    Interconnect_module_terminal,
    Printed_component_join_terminal);
END_TYPE;
(*

4.4 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.4.1 Additive_laminate_text_component   EXPRESS-GMapping table

An Additive_laminate_text_component is a type of Generic_laminate_text_component. Each Stratum_feature referenced by the stratum_feature_implementation shall be on the same Stratum.

EXPRESS specification:

*)
ENTITY Additive_laminate_text_component
  SUBTYPE OF (Generic_laminate_text_component);
  stratum_feature_implementation : SET[1:?] OF Stratum_feature;
WHERE
  WR1: SIZEOF(QUERY(sf <* stratum_feature_implementation | sf.associated_definition :<>: stratum_feature_implementation[1].associated_definition)) = 0;
END_ENTITY;
(*

Attribute definitions:

stratum_feature_implementation: specifies the role of the Stratum_feature for the Additive_laminate_text_component. There shall be one or more Stratum_features for an Additive_laminate_text_component.

NOTE    Multiple Stratum_feature may exist in the case that the shape of the character is disjoint, but they are all on the same Stratum.

Formal propositions:

WR1: All members of stratum_feature_implementation are on the same Stratum.

4.4.2 Adjacent_stratum_surface_embedded_physical_component_surface_definition   EXPRESS-GMapping table

An Adjacent_stratum_surface_embedded_physical_component_surface_definition is an oriented link in a sequence of stratum and embedded physical components that result in the completed design. This link is between a Stratum_surface and a surface of an embedded physical component. There may be multiple Adjacent_stratum_surface_embedded_physical_component_surface_definition that reference the same stratum surface in the case where Stratum are laterally adjacent. There may be multiple Adjacent_stratum_surface_embedded_physical_component_surface_definition that reference the same stratum surface in the case where embedded components are laterally adjacent. The use of Adjacent_stratum_surface_embedded_physical_component_surface_definition in combination with the position in 2D space of the embedded component within the interconnect is sufficient to uniquely identify the 3D location of the embedded component. The orientation of the Adjacent_stratum_surface_embedded_physical_component_surface_definition is parallel to the Z direction defined by the direction starting with the primary stratum and terminating on the secondary stratum.

NOTE 1   In the case of a design with embedded discrete components the vertical location of a stratum may be dependent on a population consisting of members of Adjacent_stratum_surface_embedded_physical_component_surface_definition.

NOTE 2   The embedded component in this Application Object refers to a discrete physical component, not to a feature that is the result of processing during the interconnect fabrication process. That feature is represented in this part of ISO 10303 by the Printed_component.

EXPRESS specification:

*)
ENTITY Adjacent_stratum_surface_embedded_physical_component_surface_definition;
  name : STRING;
  precedent_item : component_feature_or_stratum_surface;
  subsequent_item : component_feature_or_stratum_surface;
UNIQUE
  UR1: name;
  UR2: precedent_item, subsequent_item;
WHERE
  WR1: precedent_item <> subsequent_item;
  WR2: NOT ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.COMPONENT_FEATURE' IN TYPEOF(precedent_item)) OR (SIZEOF(['LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.BARE_DIE_SURFACE', 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.PACKAGE_BODY_SURFACE', 'INTERCONNECT_MODULE_USAGE_VIEW_ARM.INTERCONNECT_MODULE_SECONDARY_SURFACE'] * TYPEOF(precedent_item.definition)) = 1);
  WR3: NOT ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.COMPONENT_FEATURE' IN TYPEOF(subsequent_item)) OR (SIZEOF(['LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.BARE_DIE_SURFACE', 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.PACKAGE_BODY_SURFACE', 'INTERCONNECT_MODULE_USAGE_VIEW_ARM.INTERCONNECT_MODULE_PRIMARY_SURFACE'] * TYPEOF(subsequent_item.definition)) = 1);
  WR4: NOT ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_SURFACE' IN TYPEOF(precedent_item)) OR (precedent_item.name = stratum_surface_designation.secondary_surface);
  WR5: NOT ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_SURFACE' IN TYPEOF(subsequent_item)) OR (precedent_item.name = stratum_surface_designation.primary_surface);
END_ENTITY;
(*

Attribute definitions:

name: the words by which the Adjacent_stratum_surface_embedded_physical_component_surface_definition is known.

precedent_item: specifies the component_feature_or_stratum_surface that is the start of the direction vector for the Adjacent_stratum_surface_embedded_physical_component_surface_definition.

subsequent_item: specifies the component_feature_or_stratum_surface that is the terminus of the direction vector for the Adjacent_stratum_surface_embedded_physical_component_surface_definition.

Formal propositions:

UR1: The name shall be unique with a population of Adjacent_stratum_surface_embedded_physical_component_surface_definitions.

UR2: The combination of precedent_item and subsequent_item shall be unique within a population of Adjacent_stratum_surface_embedded_physical_component_surface_definitions.

WR1: The precedent_item shall not be the subsequent_item.

WR2: If the type of the precedent_item is a Component_feature then the type of the precedent_item.definition is either Bare_die_surface or Package_body_surface.

WR3: If the type of the subsequent_item is a Component_feature then the type of the subsequent_item.definition is either Bare_die_surface or Package_body_surface.

WR4: If Stratum_surface is in type of precedent_item, then its name shall be secondary_surface.

WR5: If Stratum_surface is in type of subsequent_item, then its name shall be primary_surface.

4.4.3 Area_component   EXPRESS-GMapping table

An Area_component is a type of Stratum_feature_template_component. An Area_component may be a Connected_area_component. An Area_component is a node in a graph of material additions and removals that contribute to a Stratum_feature. An Area_component may be partially or completely removed or replaced by Material_removal_laminate_component or by Area_component, respectively. If an Area_component is created as part of an instantiation of a component for which it is a member of that component and that component has a template that specifies shape properties, the explicitly_created attribute shall not be set.

EXAMPLE    An Area_component that is created as part of a Footprint_occurrence will not have the explicitly_created attribute set since it is created as part of the Footprint_occurrence.

EXPRESS specification:

*)
ENTITY Area_component
  SUPERTYPE OF (Connected_area_component)
  SUBTYPE OF (Stratum_feature_template_component);
  explicitly_created : BOOLEAN;
  is_base : BOOLEAN;
  replaced_component : OPTIONAL Area_component;
  SELF\Definition_based_product_occurrence.derived_from : area_component_templates;
DERIVE
  is_final : LOGICAL := (SIZEOF(replaced_by) = 0);
INVERSE
  replaced_by : SET[0:?] OF Area_component FOR replaced_component;
WHERE
  WR1: NOT((is_final AND pu2dv_has_shape(SELF)) XOR ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE' IN TYPEOF(implementation_or_resident_stratum)));
  WR2: is_final OR (SIZEOF(QUERY(rp <* replaced_by | SELF\Stratum_feature_template_component.resident_stratum :<>: get_resident_stratum(rp))) = 0);
  WR3: NOT(SELF IN replaced_by);
  WR4: NOT(replaced_component IN replaced_by);
  WR5: is_final XOR (SIZEOF(USEDIN(SELF,'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.MATERIAL_REMOVAL_LAMINATE_COMPONENT.DESIGN_INTENT')) > 0);
  WR6: NOT EXISTS(replaced_component) OR (NOT (SIZEOF(replaced_by) > 0) OR ((SIZEOF(QUERY(rb <* replaced_by | (acyclic_area_component(SELF,[rb], 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.AREA_COMPONENT'))))) = (SIZEOF(replaced_by)) ) );
  WR7: pu2dv_has_shape(SELF) OR ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM' IN TYPEOF(implementation_or_resident_stratum));
  WR8: NOT(SIZEOF(replaced_by) > 0) OR ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM' IN TYPEOF(implementation_or_resident_stratum));
  WR9: NOT is_base OR VALUE_IN(pu2dv_typeof(SELF), 'CONSTRUCTIVE_SOLID_GEOMETRY_2D_ARM.SINGLE_BOUNDARY_CSG_2D_MODEL');
END_ENTITY;
(*

Attribute definitions:

explicitly_created: an attribute shall be set only for case where there is no predefined requirement that is related to a template shape.

is_base: specifies a BOOLEAN value that specifies that the Area_component is a synthetic component that is the root element in a tree of material additions and removals. The base is created to comply with the ISO 10303-210 paradigm of positive material in the case when the originating CAD geometry is represented using negative images.

replaced_component: specifies the role of the Area_component for the Area_component. The replaced_component attribute establishes an arc in the graph of material additions and removals. The value of this attribute need not be specified.

derived_from: an inherited attribute shall be of type area_component_templates for the Area_component.

is_final: specifies a LOGICAL value that specifies that the Area_component is a leaf element in a tree of Area_components and that the Area_component references a Stratum_feature as an implementation.

replaced_by: specifies an inverse relationship that specifies that the existence of the Area_component is dependent on the existence of the Area_component that specifies the Area_component as its replaced_component. The replaced_by references other nodes in the graph of material additions and removals that replace the Area_component. There shall exist zero or more Area_components for the Area_component.

Formal propositions:

WR1: A Stratum_feature shall be in the role of implementation_or_resident_stratum if and only if the conjunction of is_final and has_shape is TRUE.

WR2: If the Area_component is not a leaf element then the Stratum referenced by the resident_stratum attribute inherited from the Stratum_feature_template_component supertype shall be in the members of Stratum referenced directly or indirectly by the members of Area_component that replace the Area_component.

WR3: SELF shall not be in replaced_by.

WR4: SELF shall not be a replaced_component in replaced_by.

WR5: Either an Area_component shall be a leaf element or it shall be referenced by at least one Material_removal_laminate_component in the role of design_intent but not both shall be true for a specific Area_component.

WR6: If replaced_component exists then the graph of instances of the Application Object Area_component shall not contain a cycle.

WR7: If shape of SELF is empty, then implementation_or_resident_stratum shall be of type Stratum.

WR8: If size of replaced_by is more than zero, then implementation_or_resident_stratum shall be of type Stratum.

WR9: If the component is the base, then the geometric model type for the component shall be Single_boundary_csg_2d_model.

4.4.4 Breakout_occurrence   EXPRESS-GMapping table

A Breakout_occurrence is a type of Footprint_occurrence.

EXPRESS specification:

*)
ENTITY Breakout_occurrence
  SUBTYPE OF (Footprint_occurrence);
  SELF\Definition_based_product_occurrence.derived_from : Breakout_footprint_definition;
  associated_footprint : Footprint_occurrence;
WHERE
  WR1: associated_footprint <> SELF;
  WR2: derived_from.reference_footprint = associated_footprint.derived_from;
END_ENTITY;
(*

Attribute definitions:

derived_from: an inherited attribute shall be of type Breakout_footprint_definition for the Breakout_occurrence.

associated_footprint: specifies the role of the Footprint_occurrence for the Breakout_occurrence.

Formal propositions:

WR1: The Breakout_occurrence shall not reference self as associated_footprint.

WR2: The associated_footprint shall have same Footprint_definition in role of derived_from as one being in role of reference_footprint of Breakout_footprint_definition that is in role of derived_from of Breakout_occurrence.

4.4.5 Component_termination_passage   EXPRESS-GMapping table

A Component_termination_passage is a type of Plated_passage through which a Component_terminal may pass. The properties of the Component_termination_passage are selected to support the Component_terminal.

NOTE 1   The model in this part of ISO 10303 is that the wall of the passage is directly supporting current flow.

NOTE 2   Support for the member of Component_terminal that passes through an Inter_stratum_feature but is not assembled to the wall of that Inter_stratum_feature is provided by the Cutout concept.

NOTE 3   Support for the member of Component_terminal that electrically is connected only to the surface of an Layered_interconnect_module_design_view is provided by the Land concept.

NOTE 4   There is no requirement for the Component_termination_passage to completely penetrate the interconnect substrate.

EXAMPLE 1   Figure 1 is a detail of a layout drawing that superimposes components from the next level of assembly in order to illustrate the physical relationship of a Component_termination_passage to the terminals of those components. This example omits the details of how this part of ISO 10303 establishes the relationship between the terminal and the passage for clarity.



Figure 1 —  Component_termination_passage role in an assembly

Figure 1 —  Component_termination_passage role in an assembly

EXAMPLE 2   Figure 2 is a detail of a cross-section of an interconnect substrate showing a case of complete penetration of the substrate by the Component_termination_passage.



Figure 2 —  Component_termination_passage cross-section view

Figure 2 —  Component_termination_passage cross-section view

EXPRESS specification:

*)
ENTITY Component_termination_passage
  SUBTYPE OF (Plated_passage);
  SELF\Definition_based_product_occurrence.derived_from : Component_termination_passage_template;
INVERSE
  access_mechanism : SET[1:?] OF Component_termination_passage_join_terminal FOR associated_definition;
  interface_access_mechanism : Component_termination_passage_interface_terminal FOR associated_definition;
END_ENTITY;
(*

Attribute definitions:

derived_from: an inherited attribute shall be of type Component_termination_passage_template for the Component_termination_passage.

access_mechanism: an inverse relationship that specifies that the existence of the Component_termination_passage is dependent on the existence of the Component_termination_passage_join_terminal that specifies the Component_termination_passage as its associated_definition. There shall be one or more Component_termination_passage_join_terminals for a Component_termination_passage.

interface_access_mechanism: an inverse relationship that specifies that the existence of the Component_termination_passage is dependent on the existence of the Component_termination_passage_interface_terminal that specifies the Component_termination_passage as its associated_definition.

4.4.6 Component_termination_passage_interface_terminal   EXPRESS-GMapping table

A Component_termination_passage_interface_terminal is a type of Laminate_component_interface_terminal. The Component_termination_passage_interface_terminal is the internal wall of the passage only and is the complete internal wall. It does not extend to the exterior top or bottom edges of the passage. It does not include an exterior surface of the passage. This terminal is the definition of an interface mechanism for an interconnect.

NOTE    In normal usage, the interior wall has a smaller diameter than the exterior wall.

EXPRESS specification:

*)
ENTITY Component_termination_passage_interface_terminal
  SUBTYPE OF (Laminate_component_interface_terminal);
  SELF\Component_feature.definition : Component_termination_passage_template_interface_terminal;
  SELF\Component_feature.associated_definition : Component_termination_passage;
WHERE
  WR1: NOT EXISTS(SELF\Shape_element.description);
END_ENTITY;
(*

Attribute definitions:

definition: an inherited attribute shall be of type Component_termination_passage_template_interface_terminal for the Component_termination_passage_interface_terminal.

associated_definition: an inherited attribute shall be of type Component_termination_passage for the Component_termination_passage_interface_terminal.

Formal propositions:

WR1: The description shall not be populated.

4.4.7 Component_termination_passage_join_terminal   EXPRESS-GMapping table

A Component_termination_passage_join_terminal is a type of Laminate_component_join_terminal. The Component_termination_passage_join_terminal is the exterior surface of the passage. The exterior surface has a larger nominal diameter than the interior surface.

NOTE    One Component_termination_passage_join_terminal may be related to multiple Land_join_terminals, since each stratum may have a Land associated with the Component_termination_passage.

EXPRESS specification:

*)
ENTITY Component_termination_passage_join_terminal
  SUBTYPE OF (Laminate_component_join_terminal);
  SELF\Component_feature.definition : Component_termination_passage_template_join_terminal;
  SELF\Component_feature.associated_definition : Component_termination_passage;
WHERE
  WR1: NOT EXISTS(SELF\Shape_element.description);
END_ENTITY;
(*

Attribute definitions:

definition: specifies the role of the Component_termination_passage_template_interface_terminal for the Component_termination_passage_join_terminal.

associated_definition: specifies the role of the Component_termination_passage for the Component_termination_passage_join_terminal.

Formal propositions:

WR1: The description shall not be populated.

4.4.8 Conductive_filled_area   EXPRESS-GMapping table

A Conductive_filled_area is a type of Stratum_feature in which the material is conductive. A Conductive_filled_area may be a Connected_filled_area. A Conductive_filled_area is a set of points all of which are conductive. There is no structural information provided in this Application Object.

EXPRESS specification:

*)
ENTITY Conductive_filled_area
  SUPERTYPE OF (Connected_filled_area)
  SUBTYPE OF (Stratum_feature);
WHERE
  WR1: NOT EXISTS(SELF\Shape_element.description);
END_ENTITY;
(*

Formal propositions:

WR1: The description shall not be populated.

4.4.9 Conductive_interconnect_element   EXPRESS-GMapping table

A Conductive_interconnect_element is a type of Stratum_feature_template_component. A Conductive_interconnect_element is either a Conductive_interconnect_element_with_pre_defined_transitions or an Unrouted_conductive_interconnect_element. A Conductive_interconnect_element specifies one portion of a Stratum_feature that has a sequential arrangement of Layer_connection_point.

NOTE 1   A domain term for a Conductive_interconnect_element is a trace. The domain term may include additional aspects over that defined in this application object in certain cases. For that reason, this part of ISO 10303 does not attempt to prescribe or limit the application of the term trace by standardizing it.

EXAMPLE    An example of multiple Conductive_interconnect_element, Land, and Stratum_feature_template_component that contribute to the definition of a Conductor are shown in the partially exploded view of a Conductor in figure 3.



Figure 3 —  Conductive_interconnect_element

Figure 3 —  Conductive_interconnect_element

NOTE 2   The preferred method for a pre-processor to associate a Land with the end of a Conductive_interconnect_element is to specify a location for the Land that is congruent with the location of the Layer_connection_point associated with the end of the Conductive_interconnect_element. When the location congruency method is unsuitable, a Fabrication_joint may be used. Since most pre-processors will use the location congruency method, the usage of Fabrication_joint should be documented in exchange agreements to ensure successful design intent communication.

EXPRESS specification:

*)
ENTITY Conductive_interconnect_element
  ABSTRACT SUPERTYPE OF (ONEOF (Unrouted_conductive_interconnect_element,
                                Conductive_interconnect_element_with_pre_defined_transitions))
  SUBTYPE OF (Stratum_feature_template_component);
INVERSE
  access_mechanisms : SET[2:?] OF Conductive_interconnect_element_terminal FOR associated_definition;
  connected_points : SET[1:?] OF Conductive_interconnect_element_terminal_link FOR associated_element;
WHERE
  WR1: NOT EXISTS(SELF\Product_view_definition.name);
  WR2: NOT('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.PROBE_ACCESS_AREA' IN TYPEOF(SELF));
  WR3: NOT('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.FIDUCIAL' IN TYPEOF(SELF));
  WR4: correlated_terminals(SELF\Conductive_interconnect_element.access_mechanisms, connected_points);
  WR5: (1 + SIZEOF(connected_points)) = limd_get_sz_cp(connected_points);
  WR6: NOT('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.AREA_COMPONENT' IN TYPEOF(SELF));
END_ENTITY;
(*

Attribute definitions:

access_mechanisms: an inverse relationship that specifies that the existence of the Conductive_interconnect_element is dependent on the existence of the Conductive_interconnect_element_terminal that specifies the Conductive_interconnect_element as its associated_definition. There shall be at least two Conductive_interconnect_element_terminals for a Conductive_interconnect_element.

connected_points: an inverse relationship that specifies that the existence of the Conductive_interconnect_element is dependent on the existence of the Conductive_interconnect_element_terminal_link that specifies the Conductive_interconnect_element as its associated_element. There shall be at least one Conductive_interconnect_element_terminal_link for a Conductive_interconnect_element.

Formal propositions:

WR1: The name shall not be populated.

WR2: The Probe_access_area shall not be a Conductive_interconnect_element.

WR3: The Fiducial shall not be a Conductive_interconnect_element.

WR4: Terminals refered by connected_points shall be same terminals as in access_mechanisms.

WR5: The members of access_mechanisms shall be the nodes in a connected path in the graph of instances of the Application Object Conductive_interconnect_element_terminal where the edges in the connected path are the members of connected_points.

WR6: A Conductive_interconnect_element shall not also be an Area_component.

Informal propositions:

IP1: Two of the terminals of a Conductive_interconnect_element shall be located at the endpoints of the centreline curve.

IP2: Additional terminals on the centreline curve may be included for "T" junctions under normal conditions where the endpoint of a Conductive_interconnect_element is on the centreline of another Conductive_interconnect_element.

IP3: A terminal shall only be allowed to not be on the centreline curve under the following conditions: If two Conductive_interconnect_element intersect in such a way that Conductive_interconnect_element 2 ends within the point domain of Conductive_interconnect_element 1 but the centreline of Conductive_interconnect_element 2 does not intersect the centreline of Conductive_interconnect_element 1, then a Conductive_interconnect_element_terminal shall be created at the endpoint of Conductive_interconnect_element 2. That Conductive_interconnect_element_terminal is a terminal of Conductive_interconnect_element 1 and the Layer_connection_point refernced by that Conductive_interconnect_element_terminal shall also be the Layer_connection_point that corresponds to the endpoint of Conductive_interconnect_element 2.

4.4.10 Conductive_interconnect_element_terminal   EXPRESS-GMapping table

A Conductive_interconnect_element_terminal is a type of Laminate_component_feature. The Conductive_interconnect_element_terminal is a terminal for the trace defined by Conductive_interconnect_element.

NOTE    This is used for detailed design and analysis, and also as a means to check the quality of geometry representation and transfer.

EXPRESS specification:

*)
ENTITY Conductive_interconnect_element_terminal
  SUBTYPE OF (Laminate_component_feature);
  SELF\Component_feature.associated_definition : Conductive_interconnect_element;
  connection_area : OPTIONAL SET[1:1] OF Connection_zone_in_design_view;
  location : Layer_connection_point;
UNIQUE
  UR1: SELF\Shape_element.element_name, associated_definition;
WHERE
  WR1: NOT EXISTS(SELF\Shape_element.description);
END_ENTITY;
(*

Attribute definitions:

associated_definition: an inherited attribute shall be of type Conductive_interconnect_element for the Conductive_interconnect_element_terminal.

connection_area: an inherited attribute shall be of type Connection_zone_in_design_view for the Conductive_interconnect_element_terminal. The value of this attribute need not be specified. If the data is available in the source system, it shall be supplied.

location: specifies the role of the Layer_connection_point for the Conductive_interconnect_element_terminal.

Formal propositions:

UR1: The combination of element_name and associated_definition shall be unique within a population of Conductive_interconnect_element_terminals.

WR1: The description shall not be populated.

4.4.11 Conductive_interconnect_element_terminal_link   EXPRESS-GMapping table

A Conductive_interconnect_element_terminal_link is a directed link between two Conductive_interconnect_element_terminal in order to support the sequence of Conductive_interconnect_element_terminal required in Conductive_interconnect_element_with_pre_defined_transitions.

EXPRESS specification:

*)
ENTITY Conductive_interconnect_element_terminal_link;
  associated_element : Conductive_interconnect_element;
  precedent_point : Conductive_interconnect_element_terminal;
  subsequent_point : Conductive_interconnect_element_terminal;
UNIQUE
  UR1: precedent_point, subsequent_point;
WHERE
  WR1: precedent_point <> subsequent_point;
  WR2: precedent_point.associated_definition = associated_element;
  WR3: subsequent_point.associated_definition = associated_element;
  WR4: acyclic_conductive_interconnect_element_terminal_link(SELF, [subsequent_point], 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.CONDUCTIVE_INTERCONNECT_ELEMENT_TERMINAL_LINK');
END_ENTITY;
(*

Attribute definitions:

associated_element: specifies the role of the Conductive_interconnect_element for the Conductive_interconnect_element_terminal_link.

precedent_point: specifies one role of the Conductive_interconnect_element_terminal for the Conductive_interconnect_element_terminal_link.

subsequent_point: specifies one role of the Conductive_interconnect_element_terminal for the Conductive_interconnect_element_terminal_link.

Formal propositions:

UR1: The combination of precedent_point and subsequent_point shall be unique within a population of Conductive_interconnect_element_terminal_links.

WR1: The precedent_point shall not be the subsequent_point.

WR2: The precedent_point shall be on the associated_element.

WR3: The subsequent_point shall be on the associated_element.

WR4: The graph of instances of the Application Object Conductive_interconnect_element_terminal_link shall not contain a cycle.

4.4.12 Conductive_interconnect_element_with_pre_defined_transitions   EXPRESS-GMapping table

A Conductive_interconnect_element_with_pre_defined_transitions is a type of Conductive_interconnect_element. The data provided by Conductive_interconnect_element_with_pre_defined_transitions is typical data available from two-dimensional CAD applications. The data does not include explicit representation of the variability in the vertical dimension that occurs in a real "planar" product due to material build up of successive layers of material. The derived_from is required to be orthogonal to the centreline_shape, but this is insufficient information in a three-dimensional layout. In a two-dimensional layout, the derived_from shape x direction vector is constrained to be parallel with the x direction vector of the shape of the Stratum_feature. In a two-dimensional design, all Stratum_features are parallel. In a three-dimensional design, the same parallelism constraint applies, but the underlying substrate is not presumed to be planar. The underlying surface shape idealization is contained in the Stratum_surface_shape_model or Stratum_average_surface_shape_model. The centreline_shape shall be a subset of either the points in the Stratum_average_surface_shape_model or of the points in the Stratum_surface_shape_model.

NOTE 1   The "predefined transition" refers to the extrusion of the Trace_template shape (a cross-sectional definition) along the path defined by its centreline_shape (a Curve).

EXPRESS specification:

*)
ENTITY Conductive_interconnect_element_with_pre_defined_transitions
  SUBTYPE OF (Conductive_interconnect_element);
  centreline_shape : Path_area_with_parameters;
  SELF\Definition_based_product_occurrence.derived_from : Trace_template;
  SELF\Stratum_feature_template_component.implementation_or_resident_stratum : Stratum_feature;
WHERE
  WR1: SIZEOF(connected_points) = SIZEOF(SELF\Conductive_interconnect_element.access_mechanisms) - 1;
  WR2: SIZEOF(['LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.CONDUCTOR', 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.CONDUCTIVE_FILLED_AREA'] * TYPEOF(SELF\Stratum_feature_template_component.implementation_or_resident_stratum)) = 1;
  WR3: centreline_shape.parameters = derived_from.trace_style;
  WR4: SIZEOF(QUERY(ciet <* SELF\Conductive_interconnect_element.access_mechanisms | NOT(ciet.location.resident_design_layer_stratum = SELF\Stratum_feature_template_component.implementation_or_resident_stratum.associated_definition) )) = 0;
END_ENTITY;
(*

Attribute definitions:

centreline_shape: specifies the Path_area_with_parameters representing the centreline of the Conductive_interconnect_element_with_pre_defined_transitions. The centreline when combined with the derived_from provides a CAD abstraction of the physical shape. The centreline_shape shall be interpreted to be a curve defined within the geometric context of the shape of the design.

NOTE 2   There is no Assembly_component_2d_shape_model or Assembly_component_3d_shape_model associated with the Conductive_interconnect_element_with_pre_defined_transitions because the shape is defined in place in the design. There is no Component_2d_location or Component_3d_location associated with the Next_assembly_usage associated with the Conductive_interconnect_element_with_pre_defined_transitions for the same reason.

derived_from: an inherited attribute shall be of type Trace_template for the Conductive_interconnect_element_with_pre_defined_transitions. The derived_from is a cross section definition. When combined with the centreline shape, a complete CAD abstraction is formed for the two-dimensional case. The three-dimensional case requires additional data representing the abstract surface in which the conductor being defined will be located.

implementation_or_resident_stratum: an inherited attribute shall be of type Stratum_feature for the Conductive_interconnect_element_with_pre_defined_transitions.

Formal propositions:

WR1: The size of connected_points shall be smaller by one than size of access_mechanisms.

WR2: Type of an implementation_or_resident_stratum shall be either Conductor or Conductive_filled_area.

WR3: The Trace_template in the role of derived_from shall be the Trace_template in the role of parameters for the Planar_path_shape_model_with_parameters in the role of centreline_shape.

WR4: The terminals of the Conductive_interconnect_element_with_pre_defined_transitions shall be located on the resident_stratum of the Stratum_feature the Conductive_interconnect_element_with_pre_defined_transitions references by implementation_or_resident_stratum.

4.4.13 Conductor   EXPRESS-GMapping table

A Conductor is a type of Stratum_feature realized in a Design_layer_stratum that participates in the implementation of a Generic_physical_network. A Conductor is a structured Stratum_feature that provides sufficient detail to support electrical, mechanical, manufacturing design and analysis in addition to providing a link to geometric property data.

EXAMPLE 1   Figure 4 illustrates a detail of a layout drawing that shows the Conductor in relationship to a component at the next level of the assembly.

EXAMPLE 2   The structure in a Conductor may be transferred to a specialized delay calculation processor to calculate path delays in a clock tree.



Figure 4 —  Conductor

Figure 4 —  Conductor

EXPRESS specification:

*)
ENTITY Conductor
  SUBTYPE OF (Stratum_feature);
  SELF\Stratum_feature.resident_stratum : Design_layer_stratum;
  implementation_requirement : SET[1:?] OF Intra_stratum_join_relationship;
INVERSE
  join_component : SET[0:?] OF Single_stratum_printed_component FOR stratum_feature_implementation;
WHERE
  WR1: NOT EXISTS(SELF\Shape_element.description);
  WR2: SIZEOF(implementation_requirement) - SIZEOF(join_component) = 1;
  WR3: (SIZEOF(join_component) = 0) OR (SIZEOF(QUERY(jc <* join_component | ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.TIEBAR_PRINTED_COMPONENT' IN TYPEOF(jc\Assembly_component.occurrence_contexts[1]\Product_occurrence_definition_relationship.relating_view)) AND (SIZEOF(jc\Single_stratum_printed_component.stratum_feature_implementation) :<>: 1) )) = 0);
END_ENTITY;
(*

Attribute definitions:

resident_stratum: an inherited attribute shall be of type Design_layer_stratum for the Conductor.

implementation_requirement: specifies the Intra_stratum_join_relationship that is used to constrain the Conductor by specifying the Layer_connection_point that are to be connected by the Conductor. There shall exist one or more Intra_stratum_join_relationships for the Conductor

join_component: specifies an inverse relationship that specifies that the existence of the Conductor is dependent on the existence of the Single_stratum_printed_component that specifies the Conductor as its stratum_feature_implementation. There shall exist zero or more Single_stratum_printed_components for the Conductor. Members of Single_stratum_printed_component exist only when there is a requirement to merge two or more Generic_physical_network into one Conductor. Each Single_stratum_printed_component implements a merge between two Generic_physical_network. Each additional Generic_physical_network to be merged will require an additional Single_stratum_printed_component .

Formal propositions:

WR1: The description shall not be populated.

WR2: There shall be one more implementation_requirement than there are join_component.

WR3: If there are join_component then each member of join_component shall satisfy the following: IF the member of join_component is part of a Tiebar_printed_component then there shall be exactly one Stratum_feature contributed to by that member of join_component.

4.4.14 Connected_area_component   EXPRESS-GMapping table

A Connected_area_component is a type of Area_component.

NOTE    All points in the domain of the shape of the component are connected. There may be holes in the domain.

EXPRESS specification:

*)
ENTITY Connected_area_component
  SUBTYPE OF (Area_component);
  associated_layer_connection_point : SET[1:?] OF Layer_connection_point;
END_ENTITY;
(*

Attribute definitions:

associated_layer_connection_point: specifies the Layer_connection_point for the Connected_area_component. There shall be one or more Layer_connection_points for each associated_layer_connection_point.

4.4.15 Connected_filled_area   EXPRESS-GMapping table

A Connected_filled_area is a type of Conductive_filled_area with which a set of layer connection points are associated (as specified in the implementation_requirement attribute).

EXPRESS specification:

*)
ENTITY Connected_filled_area
  SUBTYPE OF (Conductive_filled_area);
  SELF\Stratum_feature.resident_stratum : Design_layer_stratum;
  implementation_requirement : SET[1:?] OF Intra_stratum_join_relationship;
INVERSE
  join_component : SET[0:?] OF Single_stratum_printed_component FOR stratum_feature_implementation;
WHERE
  WR1: SIZEOF(implementation_requirement) - SIZEOF(join_component) = 1;
  WR2: (SIZEOF(join_component) = 0) OR (SIZEOF(QUERY(jc <* join_component | ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.TIEBAR_PRINTED_COMPONENT' IN TYPEOF(jc\Assembly_component.occurrence_contexts[1]\Product_occurrence_definition_relationship.relating_view)) AND (SIZEOF(jc\Single_stratum_printed_component.stratum_feature_implementation) :<>: 1) )) = 0);
END_ENTITY;
(*

Attribute definitions:

resident_stratum: an inherited attribute shall be of type Design_layer_stratum for the Connected_filled_area.

implementation_requirement: specifies the Intra_stratum_join_relationship for which the Connected_filled_area is generated. There shall exist one or more Intra_stratum_join_relationship for the Connected_filled_area.

join_component: specifies an inverse relationship that specifies that the existence of the Connected_filled_area is dependent on the existence of the Single_stratum_printed_component that specifies the Connected_filled_area as its stratum_feature_implementation. There shall exist zero or more Single_stratum_printed_component for the Connected_filled_area. Members of Single_stratum_printed_component exist only when there is a requirement to merge two or more Generic_physical_network into one Connected_filled_area. Each Single_stratum_printed_component implements a merge between two Generic_physical_network. Each additional Generic_physical_network to be merged will require an additional Single_stratum_printed_component .

Formal propositions:

WR1: There shall be one more implementation_requirement than there are join_component.

WR2: If there are join_component then each member of join_component shall satisfy the following: IF the member of join_component is part of a Tiebar_printed_component then there shall be exactly one Stratum_feature contributed to by that member of join_component.

4.4.16 Cutout   EXPRESS-GMapping table

A Cutout is a type of Inter_stratum_feature. A Cutout may be one of a Physical_connectivity_interrupting_cutout, a Plated_cutout or a Partially_plated_cutout. A Cutout is a closed, internal shape in a substrate. A Cutout may not extend completely through the substrate. A Complex Cutouts may be created by using the facilities in Assembly_group_component. The Cutout is represented by a closed curve in two dimensional representations and by a manifold surface in three dimensional representations. If the vertical_extent inherited from Inter_stratum_feature is not provided the Interconnect_module_edge that is referenced by the vertical_reference attribute shall be provided and the Interconnect_module_edge so referenced shall be used for the vertical extent.

NOTE    Care should be taken in pre-processors to ensure that both two and three dimensional representations adhere to reasonable industrial practice regarding tangential intersections of curves and straight line segments.

EXAMPLE 1   Figure 5 illustrates the information required to fabricate the interconnect substrate and also assemble a component onto the interconnect. The Cutout illustrated has a form that is dependent on the component installed in it. Each end of the internal conductor path shown in the figure that mates with a component terminal should be modeled as an Interconnect_module_component_terminal. During design of the interconnect substrate, thees features would be considered as interface features whose location is controlled by the mating requirement. In this example the mating requirement is simplified because the component is not a connector. In this example there are actually two Cutouts contributing to a Complex Cutout by use of Assembly_group_component.



Figure 5 —  Cutout plan view showing installed component

Figure 5 —  Cutout plan view showing installed component

EXAMPLE 2   Figure 6 illustrates a detail that shows information required to fabricate the interconnect substrate. The Cutout illustrated includes a blind passage at the base. The blind passage would be defined by a Blind_passage_template.



Figure 6 —  Cutout cross-section view showing installed component

Figure 6 —  Cutout cross-section view showing installed component

EXPRESS specification:

*)
ENTITY Cutout
  SUPERTYPE OF (ONEOF (Physical_connectivity_interrupting_cutout,
                       Plated_cutout,
                       Partially_plated_cutout))
  SUBTYPE OF (Inter_stratum_feature);
  vertical_reference : OPTIONAL Interconnect_module_edge;
WHERE
  WR1: NOT EXISTS(SELF\Product_view_definition.name);
  WR2: SIZEOF(QUERY(shape <* SELF\Inter_stratum_feature.derived_from\Geometric_template.shapes | NOT ('CONSTRUCTIVE_SOLID_GEOMETRY_2D_ARM.SINGLE_BOUNDARY_CSG_2D_MODEL' IN TYPEOF(shape)))) = 0;
  WR3: EXISTS(SELF\Inter_stratum_feature.vertical_extent) XOR EXISTS(vertical_reference);
END_ENTITY;
(*

Attribute definitions:

vertical_reference: specifies the Interconnect_module_edge that shall be the vertical reference in the case that a vertical_extent inherited from the Inter_stratum_feature is not provided.

Formal propositions:

WR1: The name shall not be populated.

WR2: Shapes of Cutout shall be of type Single_boundary_csg_2d_model.

WR3: Exactly one of vertical_extent inherited from the Inter_stratum_feature or the vertical_reference shall be provided.

4.4.17 Cutout_edge_segment   EXPRESS-GMapping table

A Cutout_edge_segment is a type of Inter_stratum_feature that defines an edge segment of a Cutout. When the Cutout_edge_segment participates in a Cutout that is fully described by a collection of Cutout_edge_segment, the end_vertex of the final segment shall be the start_vertex of the first segment. Adjacent Cutout_edge_segment reference the same member of Edge_segment_vertex but in different roles to ensure continuity. A Cutout_edge_segment may be a Plated_cutout_edge_segment. The curve representing this concept in two dimensional representations shall be open. The surface representing this concept in three dimensional representations shall be non-manifold. Pre-processors shall adhere to the requirement that the boundary this segment is contributing to shall be closed.

EXAMPLE    Figure 7 illustrates a Cutout_edge_segment.



Figure 7 —  Cutout_edge_segment

Figure 7 —  Cutout_edge_segment

EXPRESS specification:

*)
ENTITY Cutout_edge_segment
  SUPERTYPE OF (Plated_cutout_edge_segment)
  SUBTYPE OF (Inter_stratum_feature);
  composed_cutout : Cutout;
  start_vertex : Edge_segment_vertex;
  end_vertex : Edge_segment_vertex;
  SELF\Inter_stratum_feature.derived_from : Inter_stratum_feature_edge_segment_template;
WHERE
  WR1: start_vertex :<>: end_vertex;
END_ENTITY;
(*

Attribute definitions:

composed_cutout: specifies the Cutout that contains the Cutout_edge_segment.

start_vertex: specifies one role of an Edge_segment_vertex for the Cutout_edge_segment.

end_vertex: specifies one role of an Edge_segment_vertex for the Cutout_edge_segment.

derived_from: an inherited attribute shall be of type Inter_stratum_feature_edge_segment_template for the Cutout_edge_segment.

Formal propositions:

WR1: The start_vertex shall not be the end_vertex.

4.4.18 Dependently_located_layer_connection_point   EXPRESS-GMapping table

A Dependently_located_layer_connection_point is a type of Layer_connection_point that is position dependent on the location of an Interconnect_module_terminal or an Inter_stratum_feature.

NOTE 1   This part of ISO 10303 provides the capability to support one interconnect design for multiple assembly designs where components at the assembly level may or may not exist for any or all of the multiple assembly designs.

EXAMPLE 1   An example of a Dependently_located_layer_connection_point is the case where a common interconnect must be supplied for several assemblies. A specific microcircuit device, such as "U32" may be supplied for one or more, but not all, of the assemblies, but the interconnect must be identical.

EXAMPLE 2   Figure 8 illustrates a detail of a layout drawing that shows the relationship of two members of Dependently_located_layer_connection_point and the associated Conductor.



Figure 8 —  Dependently_located_layer_connection_point

Figure 8 —  Dependently_located_layer_connection_point

EXPRESS specification:

*)
ENTITY Dependently_located_layer_connection_point
  SUBTYPE OF (Layer_connection_point);
  associated_design_object : terminal_or_inter_stratum_feature;
  reference_zone : OPTIONAL Connection_zone_in_design_view;
END_ENTITY;
(*

Attribute definitions:

associated_design_object: specifies the role of the terminal_or_inter_stratum_feature for the Dependently_located_layer_connection_point.

NOTE 2   The associated_design_object may not fully constrain the location of the Dependently_located_layer_connection_point.

reference_zone: specifies the role of the Connection_zone_in_design_view for the Dependently_located_layer_connection_point. The value of this attribute need not be specified.

Informal propositions:

IP1: The Layer_connection_point is constrained to be within the material volume specified by the associated_design_object.

4.4.19 Derived_stratum   EXPRESS-GMapping table

A Derived_stratum is a type of Stratum that supports the case where a complete design or documentation stratum geometric pattern is copied onto another layer.

NOTE    The purpose of this entity is to support the case when a designer decides that the pattern on one stratum is to be replicated onto another stratum. This is only possible in the case for design layers where the nodes are identical.

EXPRESS specification:

*)
ENTITY Derived_stratum
  SUBTYPE OF (Stratum);
  derived_from : design_or_documentation_stratum;
END_ENTITY;
(*

Attribute definitions:

derived_from: specifies the role of the design_or_documentation_stratum for the Derived_stratum.

4.4.20 Design_layer_stratum   EXPRESS-GMapping table

A Design_layer_stratum is a type of Stratum incorporated into an Layered_interconnect_module_design_view for the purpose of realizing a physical network in one material.

NOTE 1   Design_layer_stratum are usually described as a signal layer or a power or ground plane.

EXPRESS specification:

*)
ENTITY Design_layer_stratum
  SUBTYPE OF (Stratum);
  primary_design_layer_stratum : BOOLEAN;
INVERSE
  existence_dependence : SET[1:?] OF Layer_connection_point FOR resident_design_layer_stratum;
WHERE
  WR1: (NOT (primary_design_layer_stratum) AND (SIZEOF(QUERY(imps <* USEDIN(SELF, 'DESIGN_SPECIFIC_ASSIGNMENT_TO_INTERCONNECT_USAGE_VIEW_ARM.STRATUM_CONCEPT_TO_PHYSICAL_USAGE_VIEW_ASSIGNMENT.' + 'ASSIGNED_DESIGN_OBJECT') | ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.INTERCONNECT_MODULE_PRIMARY_SURFACE' IN TYPEOF(imps.defined_part_feature)))) = 0)) OR ((primary_design_layer_stratum) AND (SIZEOF(QUERY(imps <* USEDIN(SELF, 'DESIGN_SPECIFIC_ASSIGNMENT_TO_INTERCONNECT_USAGE_VIEW_ARM.STRATUM_CONCEPT_TO_PHYSICAL_USAGE_VIEW_ASSIGNMENT.' + 'ASSIGNED_DESIGN_OBJECT') | ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.INTERCONNECT_MODULE_PRIMARY_SURFACE' IN TYPEOF(imps.defined_part_feature)))) = 1));
  WR2: 'FABRICATION_TECHNOLOGY_ARM.DESIGN_LAYER_TECHNOLOGY' IN TYPEOF(SELF\Stratum.of_technology);
END_ENTITY;
(*

Attribute definitions:

primary_design_layer_stratum: specifies whether or not the Design_layer_stratum is the primary stratum of the product. The value of TRUE indicates that the Design_layer_stratum is the primary_design_layer_stratum, meaning that it is the stratum occupying the side of the product that has been arbitrarily chosen to be the zero location for the vertical (z) dimension. The value of FALSE indicates that the Design_layer_stratum is not the primary_design_layer_stratum. This orientation information complies with the orientation defined in IEC 61182-1.

NOTE 2   Usual industry practice is to specify the primary stratum as that which has more through hole technology components or more active components on it, but this part of ISO 10303 does not enforce that or any other practice.

NOTE 3   It is the role of the transmitting system to designate one layer as primary. This part of ISO 10303 provides sufficient support to unambiguously communicate that and for a receiving system to validate that the primary layer is an outer design layer.

existence_dependence: specifies an inverse relationship that specifies that the existence of the Design_layer_stratum is dependent on the existence of the Layer_connection_point that specifies the Design_layer_stratum as its resident_design_layer_stratum. There shall be one or more Layer_connection_points for a Design_layer_stratum.

Formal propositions:

WR1: The value of TRUE for the primary_design_layer_stratum shall be specified if and only if the Design_layer_stratum is assigned to the Interconnect_module_primary_surface. The Design_layer_stratum shall be assigned to the Interconnect_module_primary_surface if and only if the primary_design_layer_stratum is TRUE.

WR2: A member of Design_layer_technology shall be specified by of_technology.

Informal propositions:

IP1: The value of TRUE for the primary_design_layer_stratum shall be specified for exactly one member of Design_layer_stratum in the design.

NOTE 4   This constraint is formally defined in the Layered_interconnect_module_design_view AO.

4.4.21 Dielectric_material_passage   EXPRESS-GMapping table

A Dielectric_material_passage is a type of Inter_stratum_feature that contains dielectric material. The extent of the Dielectric_material_passage is between the boundary defined by the Geometric_model of this Dielectric_material_passage and the shape of the Cutout that is to be filled with dielectric material during manufacture.

EXPRESS specification:

*)
ENTITY Dielectric_material_passage
  SUBTYPE OF (Inter_stratum_feature);
  feature_material : OPTIONAL material_or_specification;
  precedent_passage : Cutout;
WHERE
  WR1: NOT EXISTS(SELF\Product_view_definition.name);
END_ENTITY;
(*

Attribute definitions:

feature_material: specifies the material_or_specification that defines the dielectric material contained in the Dielectric_material_passage. The value of this attribute need not be specified.

precedent_passage: specifies the Cutout that defines the outer boundary of the Dielectric_material_passage before it is filled with the specified non-conductive Material_identification.

Formal propositions:

WR1: The name shall not be populated.

Informal propositions:

IP1: The same material shall exist throughout the extent of the passage.

4.4.22 Documentation_layer_stratum   EXPRESS-GMapping table

A Documentation_layer_stratum is a type of Stratum that includes patterns and other artwork information needed to manufacture a physical layer in a printed circuit board where that layer is not implementing any Generic_physical_network in the printed circuit board.

NOTE 1   A Documentation_layer_stratum generally refers to those layers in domain terms for which there is a specifically designed shape other than, or in addition to, that of the printed circuit board edge, and for which the CAD systems traditionally output a separate master artwork pattern or file, but for which the resulting pattern is not for an independent conductive layer.

EXAMPLE 1   For a "six layer pcb", in domain terms, there are six independently conductive design layers. This part of ISO 10303 allows the "outer layers" to be described by several Stratum to accommodate the different metallurgies that are found on electroless copper plated, electrolytic copper plated, and solder plated or solder coated Stratum on the primary and secondary sides of the Layered_interconnect_module_design_view. The usual design view of the shape of these "outer layers" is that the shapes are identical for all practical purposes and the required shape is the cumulative shape that will appear after all the manufacturing processes are completed. A Stratum of conductive material, such as solder paste, is not an independently conductive layer in this context, since its shape is usually dependent upon the independently conductive layer over which it is applied through openings in solder mask or another Documentation_layer_stratum.

NOTE 2   The general case of dielectric layers such as the adhesive Stratum, or the Stratum consisting of the dielectric substrate between two copper foil Stratum in a printed circuit board, is that they are neither a Documentation_layer_stratum nor a Design_layer_stratum. Their shapes are totally dependent upon the overall shape of the printed circuit board and its various passages.

EXAMPLE 2   If the stratum purpose is that of a coverlay, the insulating sheet on the outer surface of a flexible printed harness and the die-cut passages in the dielectric material of the coverlay are defined as Inter_stratum_features. A Stratum is used to describe the presence of the material. This Stratum in this context is neither a Design_layer_stratum nor a Documentation_layer_stratum.

EXAMPLE 3   A Documentation_layer_stratum differs from a Design_layer_stratum in that its Material_identifications include such materials as solder maskant, epoxy ink, or dielectric materials; or materials such as solder paste that are described as conductive by the Material_identification of the Stratum but whose shape is dependent upon that of an independently described Stratum.

EXAMPLE 4   An example of the shape of an independently described Stratum of conductive materials is that of the copper to be found in the traces and lands on the printed circuit board. The shape of a Stratum of solder paste is often dependent upon the shape of the Stratum of solder mask that in turn is dependent upon the shape of the circuitry on the primary and secondary sides of the Layered_interconnect_module_design_view over which the solder mask and solder paste are applied.

EXPRESS specification:

*)
ENTITY Documentation_layer_stratum
  SUBTYPE OF (Stratum);
WHERE
  WR1: 'FABRICATION_TECHNOLOGY_ARM.DOCUMENTATION_LAYER_TECHNOLOGY' IN TYPEOF(SELF\Stratum.of_technology);
  WR2: NOT(SIZEOF(SELF\Stratum.base_component) = 1) OR (NOT(SELF\Stratum.of_technology\Documentation_layer_technology.pre_defined_documentation_layer_purpose = predefined_documentation_layer_purpose.soldermask) OR (SIZEOF(get_mrlc_not_for_base(SELF, base_component)) = 0));
END_ENTITY;
(*

Formal propositions:

WR1: A member of Documentation_layer_technology shall be specified by of_technology.

WR2: If there is a base_component and if the Documentation_layer_stratum is a soldermask, then all Material_removal_laminate_component shall reference the base_component.

4.4.23 Electrical_isolation_laminate_component   EXPRESS-GMapping table

An Electrical_isolation_laminate_component is a type of Material_removal_laminate_component that indicates that material is to be removed in the realization of the feature that is in the role of design_intent inherited from Material_removal_laminate_component. The requirement shall be interpreted mathematically as a requirement for application of the regularized Boolean subtraction operation.

EXPRESS specification:

*)
ENTITY Electrical_isolation_laminate_component
  SUBTYPE OF (Material_removal_laminate_component);
  SELF\Definition_based_product_occurrence.derived_from : Electrical_isolation_removal_template;
END_ENTITY;
(*

Attribute definitions:

derived_from: an inherited attribute shall be of type Electrical_isolation_removal_template for the Electrical_isolation_laminate_component.

4.4.24 Embedded_physical_component_terminal   EXPRESS-GMapping table

An Embedded_physical_component_terminal is a type of Laminate_component_join_terminal included in the design to mate directly with a terminal of a fabricated feature by use of a Fabrication_joint internally in a layout. An Embedded_physical_component_terminal is a model specifically included to bridge between the discrete purchased items used in a design and the custom fabricated interconnect patterns in a substrate design. An Embedded_physical_component_terminal is an instance of a usage definition for access to a discrete component in the context of a substrate design. An Embedded_physical_component_terminal is included to support using Generic_physical_network to define the implementation connections to the associated component.

NOTE    The modeling approach used here does not imply that Embedded_physical_component_terminal is created as part of the wet or dry chemical process used to create the patterns on the substrate. It is merely identifying a functional role of a terminal of a discrete part when it is embedded in a substrate. By implication, it is also identifying the role of the associated component, i.e., that the associated component is embedded in the substrate. The method or process of achieving this is not defined in this standard. The Embedded_physical_component_terminal will not be included in a Physical_connectivity_definition and is treated herein similarly to the Printed_component terminals. A Fabrication_joint is required to connect the terminal to the Land_join_terminal adjacent to satisfy functional connectivity requirements.

EXPRESS specification:

*)
ENTITY Embedded_physical_component_terminal
  SUBTYPE OF (Laminate_component_join_terminal);
  SELF\Component_feature.definition : bare_die_terminal_or_packaged_part_terminal;
  SELF\Component_feature.associated_definition : bare_die_component_or_packaged_component;
WHERE
  WR1: NOT EXISTS(SELF\Shape_element.description);
END_ENTITY;
(*

Attribute definitions:

definition: an inherited attribute shall be of type bare_die_terminal_or_packaged_part_terminal for the Embedded_physical_component_terminal.

associated_definition: an inherited attribute shall be of type bare_die_component_or_packaged_component for the Embedded_physical_component_terminal.

Formal propositions:

WR1: The description shall not be populated.

4.4.25 Explicitly_located_layer_connection_point   EXPRESS-GMapping table

An Explicitly_located_layer_connection_point is a type of Layer_connection_point that is not a Dependently_located_layer_connection_point. An Explicitly_located_layer_connection_point may be referenced by a Junction_vertex_allocation to help define a topological structure.

NOTE    Since the Layer_connection_point supertype is ABSTRACT, only a Dependently_located_layer_connection_point or an Explicitly_located_layer_connection_point may be populated.

EXAMPLE    Figure 9 illustrates a detail of a layout drawing that shows the Explicitly_located_layer_connection_points that are included in the design due to internal layout considerations.



Figure 9 —  Explicitly_located_layer_connection_point

Figure 9 —  Explicitly_located_layer_connection_point

EXPRESS specification:

*)
ENTITY Explicitly_located_layer_connection_point
  SUBTYPE OF (Layer_connection_point);
END_ENTITY;
(*

4.4.26 Externally_defined_physical_network_group   EXPRESS-GMapping table

A Externally_defined_physical_network_group is a type of Physical_network_group.

EXPRESS specification:

*)
ENTITY Externally_defined_physical_network_group
  SUBTYPE OF (Physical_network_group);
INVERSE
  source : External_source_identification FOR item;
WHERE
  WR1: NOT (SELF\Group.membership_meaning IN Pre_defined_physical_network_group_types);
END_ENTITY;
(*

Attribute definitions:

source: specifies an inverse relationship that specifies that the existence of the Externally_defined_physical_network_group is dependent on the existence of the External_source_identification that specifies the Externally_defined_physical_network_group as its item.

Formal propositions:

WR1: None of the types included in Pre_defined_physical_network_group_types shall be specified by the membership_meaning attribute inherited from Group.

4.4.27 Externally_defined_physical_network_group_element_relationship   EXPRESS-GMapping table

A Externally_defined_physical_network_group_element_relationship is a type of Physical_network_group_element_relationship.

EXPRESS specification:

*)
ENTITY Externally_defined_physical_network_group_element_relationship
  SUBTYPE OF (Physical_network_group_element_relationship);
INVERSE
  source : External_source_identification FOR item;
WHERE
  WR1: NOT (SELF\Group_relationship.relation_type IN Pre_defined_physical_network_group_relation_types);
END_ENTITY;
(*

Attribute definitions:

source: specifies an inverse relationship that specifies that the existence of the Externally_defined_physical_network_group_element_relationship is dependent on the existence of the External_source_identification that specifies the Externally_defined_physical_network_group_element_relationship as its item.

Formal propositions:

WR1: None of the types included in Pre_defined_physical_network_group_relation_types shall be specified by the relation_type inherited from Group_relationship.

4.4.28 Fiducial   EXPRESS-GMapping table

A Fiducial is a type of Laminate_component that is a basis of measurement with respect to other Assembly_components. A Fiducial is used for accurate alignment of one item with another. Another type of Laminate_component may play the role of Fiducial in a design.

EXPRESS specification:

*)
ENTITY Fiducial
  SUBTYPE OF (Laminate_component);
END_ENTITY;
(*

4.4.29 Fiducial_stratum_feature   EXPRESS-GMapping table

A Fiducial_stratum_feature is a type of Stratum_feature that is a basis of measurement with respect to other Stratum_features. A Fiducial_stratum_feature is used for accurate alignment of one item with another. Another type of Stratum_feature may play the role of Fiducial_stratum_feature in a design.

EXPRESS specification:

*)
ENTITY Fiducial_stratum_feature
  SUBTYPE OF (Stratum_feature);
END_ENTITY;
(*

4.4.30 Footprint_occurrence   EXPRESS-GMapping table

A Footprint_occurrence is a type of Structured_layout_component. A Footprint_occurrence references a Generic_footprint_definition as a derived_from. A Footprint_occurrence is not a Physical_component, nor is it a Printed_component, nor is it a Laminate_component. A Footprint_occurrence is specifically provided to eliminate redundant location information for Lands and other layered concepts that are typically grouped to support the placement of a component in the assembly when those layered concepts are on different layers and at different x,y locations. A Structured_layout_component_sub_assembly_relationship shall be used to relate a Material_removal_structured_component to this Application Object since Material_removal_structured_component is not a Laminate_component. In the case that the information required by Part_feature_based_template_location is unavailable, a pre-processor shall populate members of Structured_layout_component_sub_assembly_relationship to compose the Footprint_occurrence and shall follow the requirements in Footprint_occurrence_sub_assembly_relationship for attributes other than the terminal_location.

NOTE 1   This Application Object provides a generic capability and is not limited to high density surface mount applications.

NOTE 2   This Application Object should not be used to relate Padstack_occurrences. The structure is provided in Generic_footprint_definition to relate a Padstack_definition to a Generic_footprint_definition in a geometric context. Further relationships in the design view will be redundant.

NOTE 3   A Footprint_occurrence_sub_assembly_relationship should be used to relate a Land to this Application Object since that relationship contains sufficient information to query the Generic_footprint_definition unambiguously for the Land definition detailed information.

EXPRESS specification:

*)
ENTITY Footprint_occurrence
  SUBTYPE OF (Structured_layout_component);
  SELF\Definition_based_product_occurrence.derived_from : Generic_footprint_definition;
END_ENTITY;
(*

Attribute definitions:

derived_from: an inherited attribute shall be of type Generic_footprint_definition for the Footprint_occurrence.

4.4.31 Footprint_occurrence_sub_assembly_relationship   EXPRESS-GMapping table

A Footprint_occurrence_sub_assembly_relationship is a type of Structured_layout_component_sub_assembly_relationship. A Footprint_occurrence_sub_assembly_relationship helps compose a Footprint_occurrence. A Footprint_occurrence_sub_assembly_relationship does not directly reference the Application Object that is the definition for the item to be included in the aggregation. Instead, it uses an indexing mechanism provided by terminal_location and sub_assembly_reference_designation to locate the padstack in the Footprint_definition and the template location in that Padstack_definition, respectively. The Footprint_occurrence_sub_assembly_relationship relies on the fact that there is no more than one shape for the item and that that shape is referenced by the path through the Footprint_occurrence. Because a Footprint_occurrence_sub_assembly_relationship requires population of Part_feature_based_template_location it is not always possible to compose a Footprint_occurrence from source data. In the case that the information required by Part_feature_based_template_location is unavailable, a pre-processor shall populate members of Structured_layout_component_sub_assembly_relationship to compose the Footprint_occurrence and shall follow the requirements in this Application Object for attributes other than the terminal_location.

EXAMPLE 1   A Land may participate in a Footprint_occurrence. In that case, there is no need to populate a separate Assembly_component_relationship between the Land and the Pcb, since the Assembly_component_relationship between the Footprint_occurrence and the Pcb establishes the required association. Pre-processor implementations are expected to not populate duplicate assembly relationships in order to reduce potential confusion in post-processor development.

EXPRESS specification:

*)
ENTITY Footprint_occurrence_sub_assembly_relationship
  SUBTYPE OF (Structured_layout_component_sub_assembly_relationship);
  SELF\Structured_layout_component_sub_assembly_relationship.relating_view : Footprint_occurrence;
  SELF\Structured_layout_component_sub_assembly_relationship.related_view : Laminate_component;
  SELF\Structured_layout_component_sub_assembly_relationship.first_location RENAMED terminal_location : Part_feature_based_template_location;
  SELF\Structured_layout_component_sub_assembly_relationship.second_location RENAMED sub_assembly_reference_designation : Template_location_in_structured_template;
UNIQUE
  UR1: sub_assembly_reference_designation, relating_view, terminal_location;
WHERE
  WR1: terminal_location.assembly :=: relating_view.derived_from;
  WR2: terminal_location.template :=: sub_assembly_reference_designation.assembly;
  WR3: 'LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.PADSTACK_DEFINITION' IN TYPEOF(sub_assembly_reference_designation.assembly);
END_ENTITY;
(*

Attribute definitions:

relating_view: the instance of the Footprint_occurrence which is being composed by the Footprint_occurrence_sub_assembly_relationship.

related_view: an inherited attribute shall be of type Laminate_component for the Footprint_occurrence_sub_assembly_relationship. The related_view specifies thet item that is helping to compose the Footprint_occurrence.

terminal_location: specifies the Part_feature_based_template_location for the Footprint_occurrence_sub_assembly_relationship.

EXAMPLE 2   In a planar design the terminal_location is a representation of the location in an x-y plane of the definition of the Footprint_occurrence.

sub_assembly_reference_designation: specifies the role of the Template_location_in_structured_template for the Footprint_occurrence_sub_assembly_relationship. The sub_assembly_reference_designation is the second item in the two item index used to locate the source definition.

EXAMPLE 3   In the case of a Land being assembled into a Footprint_occurrence, the sub_assembly_reference_designation is the location of the land template in the padstack definition.

Formal propositions:

UR1: The combination of relating_view, terminal_location and sub_assembly_reference_designation shall be unique in a population of Footprint_occurrence_sub_assembly_relationships.

WR1: The Footprint_definition referenced by assembly attribute of terminal_location shall be the same Footprint_definition that is referenced by the derived_from attribute of the relating_view.

WR2: The Padstack_definition referenced by template attribute of terminal_location shall be the same Padstack_definition that is referenced by the assembly attribute of the sub_assembly_reference_designation.

WR3: Only a Padstack_definition shall be referenced by the assembly attribute of the Template_location_in_structured_template referenced by the sub_assembly_reference_designation.

4.4.32 Generic_laminate_text_component   EXPRESS-GMapping table

A Generic_laminate_text_component is a type of Laminate_component that is designed to be interpreted as a single character portion of a text message by a human or by an artificial vision system. A Generic_laminate_text_component may be used to help compose a Laminate_text_string_component to form a complete message. The composition will be defined by an instance of Assembly_group_component that relates all necessary members of Laminate_component to compose the message embodied in the instance of Laminate_text_string_component. A Generic_laminate_text_component is either an Additive_laminate_text_component or a Material_removal_laminate_text_component.

EXPRESS specification:

*)
ENTITY Generic_laminate_text_component
  ABSTRACT SUPERTYPE OF (ONEOF (Additive_laminate_text_component,
                                Material_removal_laminate_text_component))
  SUBTYPE OF (Laminate_component);
  SELF\Definition_based_product_occurrence.derived_from : Part_text_template;
DERIVE
  of_character : label1 := derived_from\Part_text_template.of_character\Character_glyph_symbol.character;
WHERE
  WR1: NOT EXISTS(SELF\Product_view_definition.name);
END_ENTITY;
(*

Attribute definitions:

derived_from: an attribute inherited from the Part_text_template that contains the font definition and associated parameters to be used for the Generic_laminate_text_component.

of_character: specifies the message content, a character, for the Generic_laminate_text_component.

Formal propositions:

WR1: The name shall not be populated.

4.4.33 Generic_physical_network   EXPRESS-GMapping table

A Generic_physical_network is either an Unrouted_physical_network or a Routed_physical_network. A Generic_physical_network is the result of mapping a physical connectivity requirement onto the conducting Design_layer_stratum of an Layered_interconnect_module_design_view. The vertices, specified by Component_terminal, are mapped onto Layer_connection_point on the surface of one or more conducting Design_layer_stratum in the Layered_interconnect_module_design_view. The vertices are a subset of the join terminals of the interface components in this Layered_interconnect_module_design_view. It is the decision of pre-processors whether to consider a Land associated with a Component_termination_passage to be in parallel with the current flow in an electrical scenario. That decision shall be represented by including the Component_termination_passage and the Land both in the external interface of the interconnect by means of the application of the Component_terminal_to_interconnect_module_interface_terminal_assignment to each individually. In the case that a pre-processor decides to ignore the current flow through the Land, the Land shall not be referenced by a member of Component_terminal_to_interconnect_module_interface_terminal_assignment.

NOTE 1   The use of the term network in this Application Object refers to the disjoint locations of the features that implement the connectivity. The underlying model assumes that in some domain and context there is a property that is essentially invariant among all the vertices. The default domain and context for this part of ISO 10303 is electrical potential under zero current conditions and at zero Frequency.

NOTE 2   The scope of the Generic_physical_network is entirely within the interconnect design view and provides no information about assembly connectivity of design views within which occurrences of the Layered_interconnect_module_design_view, as Interconnect_module_component may appear.

NOTE 3   The Physical_node_requirement_to_implementing_component_allocation application object is provided so that traceability of the required connectivity for an assembly design view to that implemented internally in an Layered_interconnect_module_design_view may be supported. The Part_connected_terminals_definition application object is provided to specify explicitly the external terminals of the interconnect substrate that are to be connected. In a case where a design organization re-uses an interconnect design, the Part_connected_terminals_definition, since it is the actual connection statement for an Layered_interconnect_module_design_view, defines the capabilities of the interconnect substrate to satisfy the requirements imposed by the Physical_node_requirement_to_implementing_component_allocation object. There may be many sets of Physical_node_requirement_to_implementing_component_allocation (one set per assembly design) that reference an interconnect substrate. There is only one set of Part_connected_terminals_definition for an interconnect substrate.

EXPRESS specification:

*)
ENTITY Generic_physical_network
  ABSTRACT SUPERTYPE OF (ONEOF (Unrouted_physical_network,
                                Routed_physical_network));
  name : STRING;
  current_associated_definition : Layered_interconnect_module_design_view;
  prior_associated_definition : OPTIONAL SET[1:?] OF Layered_interconnect_module_design_view;
  connectivity_requirement_element : SET[1:?] OF Laminate_component_join_terminal;
  reference_connected_terminals : OPTIONAL Part_connected_terminals_definition;
  unrouted_connectivity_requirement_element : OPTIONAL SET[1:?] OF Unrouted_join_relationship;
UNIQUE
  UR1: name, current_associated_definition;
WHERE
  WR1: NOT (EXISTS(prior_associated_definition)) OR NOT (current_associated_definition IN prior_associated_definition);
END_ENTITY;
(*

Attribute definitions:

name: the words by which the Generic_physical_network is known.

current_associated_definition: specifies the Layered_interconnect_module_design_view that is the current product definition associated with the Generic_physical_network.

prior_associated_definition: specifies one or more Layered_interconnect_module_design_views that are definitions for prior versions of the design. The value of this attribute need not be specified.

connectivity_requirement_element: specifies the Laminate_component_join_terminal to be connected by the network described by the Generic_physical_network. There shall be one or more Laminate_component_join_terminals for a Generic_physical_network.

reference_connected_terminals: specifies the role of the Part_connected_terminals_definition for the Generic_physical_network. The value of this attribute need not be specified.

unrouted_connectivity_requirement_element: specifies the role of the Unrouted_join_relationship for the Generic_physical_network. There shall exist one or more Unrouted_join_relationships for the Generic_physical_network. The value of this attribute need not be specified.

Formal propositions:

UR1: The combination of name and current_associated_definition shall be unique within a population of Generic_physical_networks.

WR1: If the prior_associated_definition exists, then each member of prior_associated_definition shall not be the current_associated_definition.

Informal propositions:

IP1: All Laminate_component_join_terminal referenced by a Generic_physical_network in the role of connectivity_requirement_element shall be in the current_associated_definition.

4.4.34 Inter_stratum_extent   EXPRESS-GMapping table

An Inter_stratum_extent is a type of Part_definition_relationship. An Inter_stratum_extent is an extent of Stratum specified for a design purpose. The extent includes the from_stratum and to_stratum. The included_stratum are vertices in one path from the from_stratum to the to_stratum, although in a complex layout there may be others. There are no constraints provided by this part of ISO 10303 to distinguish one path from another so a pre-processor is free to choose the first one it finds.

NOTE 1   Scenarios for application of Inter_stratum_extent involve simple structures like a drilled hole. This Application Object is not intended to support complex scenarios where a receiver is given a choice of paths through the structure.

EXPRESS specification:

*)
ENTITY Inter_stratum_extent
  SUBTYPE OF (Part_definition_relationship);
  SELF\View_definition_relationship.relating_view RENAMED from_stratum : Stratum;
  SELF\View_definition_relationship.related_view RENAMED to_stratum : Stratum;
  included_stratum : SET[1:?] OF Stratum;
WHERE
  WR1: NOT EXISTS(SELF\View_definition_relationship.relation_type);
  WR2: from_stratum IN included_stratum;
  WR3: to_stratum IN included_stratum;
  WR4: EXISTS(from_stratum\Stratum.assembly[1]\Interconnect_module_stratum_assembly_relationship.assembly\Layered_interconnect_module_design_view.used_stack_model);
END_ENTITY;
(*

Attribute definitions:

from_stratum: specifies the Stratum at one end of the Inter_stratum_extent. This Stratum is the Stratum closer to the Design_layer_stratum whose primary_design_layer_stratum attribute value is TRUE than is the to_stratum.

to_stratum: specifies the Stratum at one end of the Inter_stratum_extent. This Stratum is further from the Design_layer_stratum whose primary_design_layer_stratum attribute value is TRUE than is the from_stratum.

NOTE 2   The to_stratum by convention is further in the negative z direction than the from_stratum. For the case of design layers, this implies that the to_stratum is furthest from the primary side of the interconnect.

included_stratum: specifies the Stratum for the Inter_stratum_extent. There shall be one or more Stratum for the Inter_stratum_extent.

Formal propositions:

WR1: The relation_type shall not be populated.

WR2: The from_stratum shall be in included_stratum.

WR3: The to_stratum shall be in included_stratum.

WR4: A Design_stack_model shall be provided when an Inter_stratum_extent is provided.

4.4.35 Inter_stratum_feature   EXPRESS-GMapping table

An Inter_stratum_feature is a type of Laminate_component. An Inter_stratum_feature is one of a Plated_inter_stratum_feature, or an Unsupported_passage. An Inter_stratum_feature spans one or more Stratum.

NOTE 1   An Inter_stratum_feature may be realized by removal of material by drilling, routing, punching, chemically etching, laser burning, or otherwise penetrating one or more sequential Stratum; by the addition of material; or by combining both removal and addition of material in the fabrication process.

NOTE 2   Keep out or keep in regions can be specified by populating Interconnect_module_constraint_region and its optional set of interconnect_module_design_object_select. The interconnect_module_design_object_select can select an Inter_stratum_feature as the design feature of interest.

EXPRESS specification:

*)
ENTITY Inter_stratum_feature
  ABSTRACT SUPERTYPE OF (ONEOF (Unsupported_passage,
                                Plated_inter_stratum_feature))
  SUBTYPE OF (Laminate_component);
  feature_of_size : BOOLEAN;
  vertical_extent : OPTIONAL Passage_technology_allocation_to_stack_model;
  SELF\Definition_based_product_occurrence.derived_from : Inter_stratum_feature_template;
WHERE
  WR1: NOT EXISTS(vertical_extent) OR (SIZEOF(QUERY(pvd <* get_assemblies(SELF) | NOT(('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.LAYERED_INTERCONNECT_MODULE_DESIGN_VIEW' IN TYPEOF(pvd)) AND (vertical_extent\Stratum_sub_stack.associated_stackup = pvd\Layered_interconnect_module_design_view.used_stack_model)) )) = 0);
END_ENTITY;
(*

Attribute definitions:

feature_of_size: specifies whether or not the Inter_stratum_feature interfaces with a feature of another product in an assembly context. A value of TRUE specifies that it interfaces. A value of FALSE specifies that it does not interface.

vertical_extent: specifies the Passage_technology_allocation_to_stack_model for the Inter_stratum_feature. The value of this attribte need not be specified.

derived_from: an inherited attribute shall be of type Inter_stratum_feature_template for the Inter_stratum_feature.

Formal propositions:

WR1: If Inter_stratum_feature helps to compose a Layered_interconnect_module_design_view then the Design_stack_model referenced by the associated_stackup attribute of the Passage_technology_allocation_to_stack_model referenced by vertical_extent shall be the same instance as that referenced by the used_stack_model attribute of the Layered_interconnect_module_design_view this Inter_stratum_feature is associated with as a component.

4.4.36 Inter_stratum_join_implementation   EXPRESS-GMapping table

An Inter_stratum_join_implementation is one of a Physical_network_supporting_inter_stratum_feature or a Physical_network_supporting_stratum_feature_conductive_join. An Inter_stratum_join_implementation is a physical feature helping to implement a Generic_physical_network. An Inter_stratum_join_implementation is not intended to be implemented alone. It is one of several Application Objects that together form the physical network implementation model.

NOTE 1   The types of Inter_stratum_join_implementation correspond to two physical implementation mechanisms.

NOTE 2   The first mechanism consists of creating a passage or edge in the material and then adding conductive material to the passage or edge wall and features on the to_stratum and from_stratum of the Inter_stratum_extent. This mechanism results in a connection between the required features implemented with the passage or edge wall.

NOTE 3   The second mechanism does not result in a conducting passage, but relies on a bond (achieved either by direct deposition or some other means) between the features related to the specified layer_connection_points. The second mechanism usually relies on a passage in only the dielectric material separating the bonded materials. A cross-sectional view of the pcb may show a vertical displacement of strata in the area of this object, due to the fact that the dielectric Stratum is much thicker than the conductive Stratum. The shape of the vertical displacement is not a part of the definition of the Inter_stratum_join_implementation when the second mechanism is used.

EXPRESS specification:

*)
ENTITY Inter_stratum_join_implementation
  ABSTRACT SUPERTYPE OF (ONEOF (Physical_network_supporting_stratum_feature_conductive_join,
                                Physical_network_supporting_inter_stratum_feature));
  topological_requirement : Inter_stratum_join_relationship;
END_ENTITY;
(*

Attribute definitions:

topological_requirement: specifies the role of the Inter_stratum_join_relationship for the Inter_stratum_join_implementation.

4.4.37 Inter_stratum_join_relationship   EXPRESS-GMapping table

An Inter_stratum_join_relationship is a type of Routed_join_relationship, in which the elements to be joined, Layer_connection_point, shall be on different Design_layer_stratum. An Inter_stratum_join_relationship is a requirement for a Inter_stratum_join_implementation.

NOTE    In order for a design to be complete the Inter_stratum_join_implementation that specifies Inter_stratum_join_relationship in the role of topological_requirement must be populated.

EXPRESS specification:

*)
ENTITY Inter_stratum_join_relationship
  SUBTYPE OF (Routed_join_relationship);
  points_to_be_connected : SET[2:?] OF Layer_connection_point;
DERIVE
  associated_stratum : BAG[0:?] OF Design_layer_stratum := limd_get_lcp_resident_stratum(points_to_be_connected);
WHERE
  WR1: SIZEOF(associated_stratum) = SIZEOF(bag_to_set(associated_stratum));
END_ENTITY;
(*

Attribute definitions:

points_to_be_connected: specifies the Layer_connection_point for the Inter_stratum_join_relationship. There shall be two or more layer_connection_points for each Inter_stratum_join_relationship.

associated_stratum: specifies the Stratum that are the resident_design_layer_stratum for the members of points_to_be_connected.

Formal propositions:

WR1: No more than one member of points_to_be_connected shall reference a specific stratum as a resident_design_layer_stratum.

4.4.38 Interconnect_connection_zone_position_relationship   EXPRESS-GMapping table

An Interconnect_connection_zone_position_relationship is the association between a geometric model of an Layered_interconnect_module_design_view as a target and a geometric model of a Connection_zone_in_design_view as the source. This relationship positions and orients the source into the target using a transformation. The source is a model of a connection area associated with a design specific terminal created in the interconnect.

NOTE 1   There can be only one terminal that uses the Connection_zone_in_design_view referenced so there is no need to reference the terminal in this relationship.

NOTE 2   The terminal that uses the Connection_zone_in_design_view is a terminal of a component in the interconnect.

NOTE 3   This Application Object is not required in most industrial usage of this part of ISO 10303 because the terminal point domains provide sufficient information for most cases that require detailed analysis.

EXPRESS specification:

*)
ENTITY Interconnect_connection_zone_position_relationship;
  associating_design_view_shape : Geometric_model;
  associated_usage : Connection_zone_in_design_view;
  associated_connection_zone_shape_definition : Geometric_model;
  associated_usage_placement : Axis_placement;
  associating_design_view : Layered_interconnect_module_design_view;
END_ENTITY;
(*

Attribute definitions:

associating_design_view_shape: specifies the role of the Geometric_model for the Interconnect_connection_zone_position_relationship.

associated_usage: specifies the role of the Connection_zone_in_design_view for the Interconnect_connection_zone_position_relationship.

associated_connection_zone_shape_definition: specifies the role of the Geometric_model for the Interconnect_connection_zone_position_relationship.

associated_usage_placement: specifies the role of the Axis_placement for the Interconnect_connection_zone_position_relationship.

associating_design_view: specifies the role of the Layered_interconnect_module_design_view for the Interconnect_connection_zone_position_relationship.

4.4.39 Interconnect_module_design_view   EXPRESS-GMapping table

An Interconnect_module_design_view is a type of Assembly_definition and of Part_design_view. An Interconnect_module_design_view may be a Layered_interconnect_module_design_view.

EXPRESS specification:

*)
ENTITY Interconnect_module_design_view
  SUPERTYPE OF (Layered_interconnect_module_design_view)
  SUBTYPE OF (Assembly_definition, Part_design_view);
END_ENTITY;
(*

4.4.40 Interconnect_module_edge   EXPRESS-GMapping table

An Interconnect_module_edge is a type of Inter_stratum_feature. An Interconnect_module_edge may be a Partially_plated_interconnect_module_edge or a Plated_interconnect_module_edge. When this information is represented by a planar shape, the interpretation is to be that the planar shape represents a projection of the maximum extent of the Interconnect_module_edge onto the planar shape. The boundary of the Interconnect_module_edge forms an outer physical boundary of the interconnect substrate. The Interconnect_module_edge is represented by a simply connected area with no voids in two dimensional representations and by a manifold surface with no voids in three dimensional representations.

NOTE    Care should be taken in pre-processors to ensure that both two and three dimensional representations adhere to reasonable industrial practice regarding minimum feature size at tangential intersections of curves and straight line segments, including ensuring that the distance between the end points of a curve is resolvable in the geometric coordinate system provided by the pre-processor.

EXAMPLE    A pattern shape for the top soldermask Documentation_layer_stratum extends beyond the boundary of the Interconnect_module_edge. A post-processor intended to support mechanical analysis would trim the pattern shape using the Interconnect_module_edge shape as a trim template.

EXPRESS specification:

*)
ENTITY Interconnect_module_edge
  SUPERTYPE OF (ONEOF (Partially_plated_interconnect_module_edge,
                       Plated_interconnect_module_edge))
  SUBTYPE OF (Inter_stratum_feature);
WHERE
  WR1: SIZEOF(QUERY(shape <* SELF\Inter_stratum_feature.derived_from\Geometric_template.shapes | NOT ('CONSTRUCTIVE_SOLID_GEOMETRY_2D_ARM.SINGLE_BOUNDARY_CSG_2D_MODEL' IN TYPEOF(shape)))) = 0;
  WR2: NOT EXISTS(SELF\Inter_stratum_feature.vertical_extent);
END_ENTITY;
(*

Formal propositions:

WR1: Shapes of Interconnect_module_edge shall be of type Single_boundary_csg_2d_model.

WR2: The vertical_extent attribute inherited from Inter_stratum_feature shall not exist.

4.4.41 Interconnect_module_edge_segment   EXPRESS-GMapping table

An Interconnect_module_edge_segment is a type of Inter_stratum_feature. An Interconnect_module_edge_segment may be one of a Plated_interconnect_module_edge_segment or an Unplated_interconnect_module_edge_segment. The Interconnect_module_edge_segment is an entity with a uniquely specified shape that makes up part of the edge of an interconnect module. The curve representing this concept in two dimensional representations shall be open. The surface representing this concept in three dimensional representations shall be non-manifold. Pre-processors shall adhere to the requirement that the boundary this segment is contributing to shall be closed.

EXAMPLE    Usually each side of a four-sided board is an Interconnect_module_edge_segment, or if a board is a round board, one of the Interconnect_module_edge_segment's may be a notch for orientation purposes. The set of Interconnect_module_edge_segment's together make up the total edge.

EXPRESS specification:

*)
ENTITY Interconnect_module_edge_segment
  SUPERTYPE OF (ONEOF (Plated_interconnect_module_edge_segment,
                       Unplated_interconnect_module_edge_segment))
  SUBTYPE OF (Inter_stratum_feature);
  composed_edge : Interconnect_module_edge;
  start_vertex : Edge_segment_vertex;
  end_vertex : Edge_segment_vertex;
  SELF\Inter_stratum_feature.derived_from : Inter_stratum_feature_edge_segment_template;
WHERE
  WR1: start_vertex :<>: end_vertex;
END_ENTITY;
(*

Attribute definitions:

composed_edge: specifies the role of the Interconnect_module_edge for the Interconnect_module_edge_segment.

start_vertex: specifies the initial Edge_segment_vertex for an Interconnect_module_edge_segment.

end_vertex: specifies the final Edge_segment_vertex for an Interconnect_module_edge_segment.

derived_from: an inherited attribute shall be of type Inter_stratum_feature_edge_segment_template for the Interconnect_module_edge_segment.

Formal propositions:

WR1: The end_vertex shall not be the start_vertex.

4.4.42 Interconnect_module_macro_terminal   EXPRESS-GMapping table

An Interconnect_module_macro_terminal is a type of Interconnect_module_terminal included to support interconnect macro definition and reuse.

EXPRESS specification:

*)
ENTITY Interconnect_module_macro_terminal
  SUBTYPE OF (Interconnect_module_terminal);
INVERSE
  defining_terminal : Component_feature_to_physical_usage_view_assignment FOR defined_part_feature;
WHERE
  WR1: SIZEOF(['LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.COMPONENT_TERMINATION_PASSAGE_JOIN_TERMINAL', 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.VIA_TERMINAL', 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.PRINTED_COMPONENT_JOIN_TERMINAL', 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.CONDUCTIVE_INTERCONNECT_ELEMENT_TERMINAL', 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.LAND_JOIN_TERMINAL'] * TYPEOF(defining_terminal.assigned_design_object)) = 1;
END_ENTITY;
(*

Attribute definitions:

defining_terminal: specifies an inverse relationship that specifies that the existence of the Interconnect_module_macro_terminal is dependent on the existence of the Component_feature_to_physical_usage_view_assignment that specifies the Interconnect_module_macro_terminal as its defined_part_feature.

Formal propositions:

WR1: The assigned_design_object of defining_terminal shall be of type Component_termination_passage_join_terminal, or Via_terminal, or Printed_component_join_terminal, or Conductive_interconnect_element_terminal, or Land_join_terminal.

4.4.43 Interconnect_module_stratum_assembly_relationship   EXPRESS-GMapping table

An Interconnect_module_stratum_assembly_relationship is the composition association between an Layered_interconnect_module_design_view and a Stratum helping to compose it.

EXPRESS specification:

*)
ENTITY Interconnect_module_stratum_assembly_relationship;
  assembly : Layered_interconnect_module_design_view;
  component : Stratum;
  reference_designation : STRING;
UNIQUE
  UR1: assembly, reference_designation;
END_ENTITY;
(*

Attribute definitions:

assembly: specifies the role of the Layered_interconnect_module_design_view for the Interconnect_module_stratum_assembly_relationship.

component: specifies the role of the Stratum for the Interconnect_module_stratum_assembly_relationship.

reference_designation: specifies the string for the human-interpretable identifier for the Interconnect_module_stratum_assembly_relationship.

Formal propositions:

UR1: The combination of assembly and reference_designation shall be unique within a population of Interconnect_module_stratum_assembly_relationships.

4.4.44 Interface_access_material_removal_laminate_component   EXPRESS-GMapping table

An Interface_access_material_removal_laminate_component is a type of Material_removal_laminate_component that indicates that material is to be removed in the realization of access to the Laminate_component_interface_terminal.

EXAMPLE    If a passage in a silkscreen layer is necessary to gain access to a Laminate_component_interface_terminal and it is desired to record the reason for the passage, this Application Object provides that capability.

EXPRESS specification:

*)
ENTITY Interface_access_material_removal_laminate_component
  SUBTYPE OF (Material_removal_laminate_component);
  SELF\Material_removal_laminate_component.causal_item RENAMED accessed_interface : Laminate_component_interface_terminal;
END_ENTITY;
(*

Attribute definitions:

accessed_interface: specifies the role of the Laminate_component_interface_terminal for the Interface_access_material_removal_laminate_component.

4.4.45 Interface_access_stratum_feature_template_component   EXPRESS-GMapping table

An Interface_access_stratum_feature_template_component is a type of Stratum_feature_template_component provided to provide access to a Laminate_component_interface_terminal where auxiliary processes would prohibit direct access to the terminal and where it is necessary to record the explicit relationship.

NOTE    A solderpaste may cover the terminal and in some cases it is necessary to denote the fact that the terminal is below the solderpaste. If it is not necessary to explicitly identify the fact that the solderpaste covers the terminal, this Application Object would not be populated. Those cases would occur where geometry queries are sufficient. The Interface_access_stratum_feature_template_component is not on the same Stratum as the terminal being accessed.

EXPRESS specification:

*)
ENTITY Interface_access_stratum_feature_template_component
  SUBTYPE OF (Stratum_feature_template_component);
  accessed_interface : Laminate_component_interface_terminal;
END_ENTITY;
(*

Attribute definitions:

accessed_interface: specifies the role of the Laminate_component_interface_terminal for the Interface_access_stratum_feature_template_component.

4.4.46 Internal_probe_access_area   EXPRESS-GMapping table

An Internal_probe_access_area is a type of Probe_access_area included in the design for access to an internal conductor for probing purposes. The domain of the Via in the role of inter_stratum_feature for the internal_access shall intersect the domain of the probed_layout_item and shall intersect the domain of the stratum_feature_implementation.

NOTE 1   The stratum_feature_implementation is included only to support the probe requirements by specifying the external target of the probe and is not included in a functional nodelist.

NOTE 2   A member of Internal_probe_access_area is itself an incomplete concept and is dependent on a member of Internal_stratum_access for a valid model.

EXAMPLE    A Routed_physical_network 3CB022 is to be probed and the only accessible x y location is at ( 3.0, 4.0) with a Stratum_feature on layer 6. The measurement system accesses the PWB from the top side. A member of Internal_probe_access_area is populated with the following information:

Table 1 — Population of Internal_probe_access_area

#2000=Internal_probe_access_area(referenced as SELF in following lines)

SELF\Definition_based_product_occurrence.derived_from #2222=Stratum_feature_template;
SELF\Probe_access_area.probed_layout_item #2233=Stratum_feature (on layer 6 and part of implementation of net 3CB022)
SELF\Probe_access_area.stratum_feature_material_stackup not provided;
 stratum_feature_implementation #4444=Stratum_feature composed only of one Land (on top layer).
 internal_access #2000 is referenced by #3000

A member of Internal_stratum_access is populated to specify the Via that connects the top Stratum_feature with the Stratum_feature on layer 6.

Table 2 — Population of Internal_stratum_access

#3000=Internal_stratum_access(referenced as SELF in following lines)

 connected_probe #2000; The probe structure being implemented.
 inter_stratum_feature #3300=Via; Implementation feature for connecting top layer to layer 6.

EXPRESS specification:

*)
ENTITY Internal_probe_access_area
  SUBTYPE OF (Probe_access_area);
  stratum_feature_implementation : Stratum_feature;
INVERSE
  internal_access : Internal_stratum_access FOR connected_probe;
WHERE
  WR1: NOT EXISTS(SELF\Probe_access_area.stratum_feature_material_stackup) OR (stratum_feature_implementation :=: SELF\Probe_access_area.stratum_feature_material_stackup\Stratum_feature_based_derived_pattern.reference_stratum_feature);
END_ENTITY;
(*

Attribute definitions:

stratum_feature_implementation: specifies the role of the Stratum_feature for the Internal_probe_access_area.

internal_access: specifies an inverse relationship that specifies that the Internal_probe_access_area is existence dependent on the the Internal_stratum_access for which the Internal_probe_access_area is in the role of connected_probe.

Formal propositions:

WR1: If stratum_feature_material_stackup is provided then the stratum_feature_implementation shall be the reference_stratum_feature in the stratum_feature_material_stackup.

4.4.47 Internal_stratum_access   EXPRESS-GMapping table

An Internal_stratum_access is a relationship between an Internal_probe_access_area and a Via that provides access to a Stratum_feature on an internal Design_layer_stratum. This Application Object is part of a logical structure to identify the special usage of a Via in support of accessing internal conductors in the design for test purposes. The same Via may support test and functional requirements if the functional requirement is between two internal layers.

EXPRESS specification:

*)
ENTITY Internal_stratum_access;
  connected_probe : Internal_probe_access_area;
  inter_stratum_feature : Via;
UNIQUE
  UR1: connected_probe, inter_stratum_feature;
END_ENTITY;
(*

Attribute definitions:

connected_probe: specifies the Internal_probe_access_area that provides probe access to a Stratum_feature on an internal Design_layer_stratum for the Internal_stratum_access.

inter_stratum_feature: specifies the Via that provides electrical connectivity to the Stratum_feature to be probed for the Internal_stratum_access. The external surface of the Via is the area the test probe mates with in a test setup.

Formal propositions:

UR1: The combination of connected_probe and inter_stratum_feature shall be unique within a population of Internal_stratum_accesses.

4.4.48 Intra_stratum_join_relationship   EXPRESS-GMapping table

An Intra_stratum_join_relationship is a type of Routed_join_relationship in which all joins occur on one Design_layer_stratum.

EXPRESS specification:

*)
ENTITY Intra_stratum_join_relationship
  SUBTYPE OF (Routed_join_relationship);
  points_to_be_connected : SET[2:?] OF Layer_connection_point;
DERIVE
  associated_stratum : Design_layer_stratum := points_to_be_connected[1].resident_design_layer_stratum;
INVERSE
  ordered_implementation : SET[0:1] OF Conductor FOR implementation_requirement;
  random_implementation : SET[0:1] OF Connected_filled_area FOR implementation_requirement;
WHERE
  WR1: (SIZEOF(ordered_implementation) = 1) XOR (SIZEOF(random_implementation) = 1);
  WR2: SIZEOF(QUERY(ptbc <* points_to_be_connected | NOT(ptbc.resident_design_layer_stratum = associated_stratum) )) = 0;
END_ENTITY;
(*

Attribute definitions:

points_to_be_connected: specifies the Layer_connection_point for the Intra_stratum_join_relationship. There shall be two or more Layer_connection_points for each points_to_be_connected.

associated_stratum: specifies the resident_design_layer_stratum of the members of points_to_be_connected.

ordered_implementation: specifies an inverse relationship that specifies the Conductor that specifies the Intra_stratum_join_relationship as its implementation_requirement. There shall be no more than one Conductor for an Intra_stratum_join_relationship. The use of "ordered" in this context shall be interpreted as "having a distinct structure by design". It does not indicate a strictly linear sequence.

random_implementation: specifies an inverse relationship that specifies the Connected_filled_area that specifies the Intra_stratum_join_relationship as its implementation_requirement. There shall be no more than one Connected_filled_area for an Intra_stratum_join_relationship. The use of "random" in this context shall be interpreted as "having no intrinsic structure by design".

Formal propositions:

WR1: Either ordered_implementation or random_implementation shall exist for an Intra_stratum_join_relationship.

WR2: All Layer_connection_points specified by points_to_be_connected shall be on the same Design_layer_stratum.

4.4.49 Join_relationship   EXPRESS-GMapping table

A Join_relationship is a Routed_join_relationship, or an Unrouted_join_relationship. A Join_relationship identifies a strict subset of the Layer_connection_point identified by Generic_physical_network topology. This subset is then inherited by both types of Join_relationship to ensure topological integrity.

EXPRESS specification:

*)
ENTITY Join_relationship
  ABSTRACT SUPERTYPE OF (ONEOF (Routed_join_relationship,
                                Unrouted_join_relationship));
  associated_layout : Layered_interconnect_module_design_view;
END_ENTITY;
(*

Attribute definitions:

associated_layout: specifies the Layered_interconnect_module_design_view that is the design in which the Join_relationship is contained.

4.4.50 Laminate_component   EXPRESS-GMapping table

A Laminate_component is a type of Assembly_component and a type of Single_instance. A Laminate_component may be one of a Material_removal_laminate_component, a Stratum_feature_template_component or additionally a Probe_access_area, an Inter_stratum_feature, a Generic_laminate_text_component, a Laminate_text_string_component, or additionally a Fiducial. All types of Laminate_component are realized as part of the manufacturing process that produces the interconnect. The scope of the Laminate_component is the interconnect definition. Not all components that are realized by the manufacturing process that produces the interconnect are Laminate_component.

NOTE 1   A Laminate_component is not a Printed_component even though both may be realized by the same manufacturing process that produces the interconnect. A Laminate_component functionality is defined in this part of ISO 10303, whereas the functionality of a Printed_component is typically defined in a source CAD system, although this part of ISO 10303 may define some specific types of Printed_component.

NOTE 2   A Laminate_component does not appear in an assembly definition; therefore a Laminate_component is not a phyiscal component.

NOTE 3   A Laminate_component is only one of several Application Objects that may be referenced by a Laminate_component_feature or by subtypes of Laminate_component_feature.

NOTE 4   A Laminate_component is not an embedded discrete component because an embedded discrete component is physically realized separately from the manufacturing process that produces the interconnect.

NOTE 5   An embedded discrete component is not an explicit Application Object but is an implicit role of a discrete component established by the inclusion in an interconnect design view of a discrete component by a member of Next_assembly_usage.

EXPRESS specification:

*)
ENTITY Laminate_component
  SUPERTYPE OF (ONEOF (Material_removal_laminate_component, (
                       Stratum_feature_template_component
               ANDOR Probe_access_area),
                    Inter_stratum_feature,
                    Generic_laminate_text_component,
                    Laminate_text_string_component)
              ANDOR Fiducial)
  SUBTYPE OF (Assembly_component, Single_instance);
  SELF\Definition_based_product_occurrence.derived_from : Template_definition;
INVERSE
  cad_layer : SET[0:1] OF External_source_identification FOR item;
WHERE
  WR1: ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.LAYERED_INTERCONNECT_MODULE_DESIGN_VIEW' IN TYPEOF(SELF\Assembly_component.occurrence_contexts[1]\Product_occurrence_definition_relationship.relating_view)) OR ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRUCTURED_LAYOUT_COMPONENT_SUB_ASSEMBLY_RELATIONSHIP' IN TYPEOF(SELF\Assembly_component.occurrence_contexts[1]));
END_ENTITY;
(*

Attribute definitions:

derived_from: an inherited attribute shall be of type Template_definition for the Laminate_component.

cad_layer: specifies an inverse relationship that specifies that the existence of the Laminate_component is dependent on the existence of the External_source_identification that specifies the Laminate_component as its item. There shall be zero or one External_source_identification for a particular Laminate_component.

Formal propositions:

WR1: A Laminate_component shall be referenced by a Structured_layout_component_sub_assembly_relationship or by an Assembly_component_relationship where that Assembly_component_relationship puts the Laminate_component into an Layered_interconnect_module_design_view.

4.4.51 Laminate_component_feature   EXPRESS-GMapping table

A Laminate_component_feature is a type of Component_feature whose scope is that of an interconnect definition. A Laminate_component_feature is one of a Conductive_interconnect_element_terminal, a Laminate_component_interface_terminal, a Laminate_component_join_terminal, or a Via_terminal. A Laminate_component_feature is a feature of the fabricated interconnect that is either internal or external. A Laminate_component_feature may reference either an item fabricated directly in the interconnect fabrication or a discrete component that is included in the interconnect fabrication process. The scope is the determinant in whether a feature is a Laminate_component_feature or a Physical_component_feature.

NOTE    The scope of a Physical_component_feature is a discrete assembly.

EXAMPLE 1   A Laminate_component_feature may reference an embedded component as an associated component to indicate that the internal interconnect structure implements a connection to the embedded component. The reference to the embedded component does not imply that that embedded component is fabricated as part of the interconnect.

EXAMPLE 2   A Laminate_component_feature may reference a printed component as an associated component to indicate that the internal interconnect structure implements a connection to the printed component. The connection to the printed component is considered separately because the functionality of the printed component is considered separately.

EXAMPLE 3   A Laminate_component_feature may reference a Land as an associated component to indicate that the internal interconnect structure implements a connection to the Land.

EXPRESS specification:

*)
ENTITY Laminate_component_feature
  ABSTRACT SUPERTYPE OF (ONEOF (Conductive_interconnect_element_terminal,
                                Laminate_component_interface_terminal,
                                Laminate_component_join_terminal,
                                Via_terminal))
  SUBTYPE OF (Component_feature);
END_ENTITY;
(*

4.4.52 Laminate_component_interface_terminal   EXPRESS-GMapping table

A Laminate_component_interface_terminal is a type of Laminate_component_feature. A Laminate_component_interface_terminal is a terminal that is externally visible but that is fabricated as part of the interconnect fabrication. A Laminate_component_interface_terminal may reference either an item that is a Laminate_component or that is a Printed_connector_component.

EXAMPLE 1   A Laminate_component_interface_terminal may reference a printed connector component as an associated component to indicate that the internal interconnect structure implements a connection to the printed connector component. The connection to the printed connector component is considered separately because the functionality of the printed connector component is considered separately.

EXAMPLE 2   A Laminate_component_interface_terminal may reference a Land as an associated component to indicate that the internal interconnect structure implements a connection to the Land.

EXPRESS specification:

*)
ENTITY Laminate_component_interface_terminal
  ABSTRACT SUPERTYPE
  SUBTYPE OF (Laminate_component_feature);
END_ENTITY;
(*

4.4.53 Laminate_component_join_terminal   EXPRESS-GMapping table

A Laminate_component_join_terminal is a type of Component_terminal and a type of Laminate_component_feature. A Laminate_component_join_terminal is a terminal that is internal to the fabricated interconnect. A Laminate_component_join_terminal may reference either an item fabricated directly in the interconnect fabrication or a discrete item that is included in the interconnect fabrication process as a dissimilar material.

EXAMPLE 1   A Laminate_component_join_terminal may reference an embedded component as an associated component to indicate that the internal interconnect structure implements a connection to the embedded component.

EXAMPLE 2   A Laminate_component_join_terminal may reference a printed component as an associated component to indicate that the internal interconnect structure implements a connection to the printed component. The connection to the printed component is considered separately because the functionality of the printed component is considered separately.

EXAMPLE 3   A Laminate_component_join_terminal may reference a Land as an associated component to indicate that the internal interconnect structure implements a connection to the Land.

EXPRESS specification:

*)
ENTITY Laminate_component_join_terminal
  ABSTRACT SUPERTYPE
  SUBTYPE OF (Laminate_component_feature, Component_terminal);
INVERSE
  node_implementation : SET[0:1] OF Generic_physical_network FOR connectivity_requirement_element;
END_ENTITY;
(*

Attribute definitions:

node_implementation: an inverse relationship that specifies that the existence of the Laminate_component_join_terminal is dependent on the existence of the Generic_physical_network that specifies the Laminate_component_join_terminal as its connectivity_requirement_element. There shall be zero or one Generic_physical_network for a Laminate_component_join_terminal.

4.4.54 Laminate_group_component_make_from_relationship   EXPRESS-GMapping table

A Laminate_group_component_make_from_relationship is a type of Component_make_from_relationship. A Laminate_group_component_make_from_relationship is the association between one Assembly_group_component and another Assembly_group_component, where one Assembly_group_component from full or partial reuse of the other. A Laminate_group_component_make_from_relationship also supports mapping of a Stratum in the reference design to a Stratum in this design.

NOTE    The main use of this concept is use of multi-layer breakout definitions for complex integrated circuits where there is a mapping from a Stratum in the reusable_component to a stratum in this layout.

EXPRESS specification:

*)
ENTITY Laminate_group_component_make_from_relationship
  SUBTYPE OF (Component_make_from_relationship);
  SELF\Component_make_from_relationship.reusable_component : Assembly_group_component;
  SELF\Component_make_from_relationship.resultant_component : Assembly_group_component;
  stratum_mapping : SET[1:?] OF Part_definition_relationship;
WHERE
  WR1: SIZEOF(QUERY(sar <* reusable_component\Assembly_group_component.components | NOT ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.LAMINATE_COMPONENT' IN TYPEOF(sar\Product_occurrence_definition_relationship.related_view)))) = 0;
  WR2: SIZEOF(QUERY(sar <* resultant_component\Assembly_group_component.components | NOT ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.LAMINATE_COMPONENT' IN TYPEOF(sar\Product_occurrence_definition_relationship.related_view)))) = 0;
END_ENTITY;
(*

Attribute definitions:

reusable_component: specifies the Assembly_group_component that is reused to create the resultant_component in the Laminate_group_component_make_from_relationship.

resultant_component: specifies the Assembly_group_component that results from the reuse in the Laminate_group_component_make_from_relationship.

stratum_mapping: specifies the Part_definition_relationship for the Laminate_group_component_make_from_relationship. There shall be one or more Part_definition_relationships for each stratum_mapping.

Formal propositions:

WR1: The components of reusable_component shall only refer Laminate_component as related_view.

WR2: The components of resultant_component shall only refer Laminate_component as related_view.

4.4.55 Laminate_text_string_component   EXPRESS-GMapping table

A Laminate_text_string_component is a type of Array_placement_group and is a type of Laminate_component. A Laminate_text_string_component conveys a complete one line message to the viewer. A Laminate_text_string_component is composed by associating one or more individual instances of Generic_laminate_text_component to the Laminate_text_string_component using one instance of Component_upper_level_identification. The Laminate_text_string_component itself does not directly refer to a font definition. The derived_from inherited from the supertype Assembly_component is unnecessary since this Application Object is defined by the composition of Generic_laminate_text_component contributing to it. The position of the Laminate_text_string_component shall be interpreted as a constraint on the position of the individual components contributing to it. The position of the Laminate_text_string_component shall be interpreted as the insertion point for the message. The Laminate_text_string_component may have an orientation with respect to the design coordinate system, in which case the components composing the Laminate_text_string_component shall have a corresponding orientation. The Axis_placement or Cartesian_transformation_2d which locates the Laminate_text_string_component shall be interpreted as a local coordinate system in order that any orientation shall be applied consistently to all components. An implementation shall ensure that adjacent characters that use different fonts still meet the requirement that Stratum_feature instances are disjoint.

NOTE    If multi-line messages are required, multiple instances of Laminate_text_string_component will be needed, one for each line of the message.

EXAMPLE    Figure 10 illustrates possible arrangements and orientation of the Laminate_text_string_component in the material of the Stratum. The figure includes multiple Generic_laminate_text_component members presenting characters.



Figure 10 —  Laminate text component

Figure 10 —  Laminate text component

EXPRESS specification:

*)
ENTITY Laminate_text_string_component
  SUBTYPE OF (Array_placement_group, Laminate_component);
  SELF\Definition_based_product_occurrence.derived_from : Part_string_template;
  message_contents : Text_literal_with_extent;
WHERE
  WR1: SIZEOF(QUERY(sar <* SELF\Assembly_group_component.components | NOT ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.GENERIC_LAMINATE_TEXT_COMPONENT' IN TYPEOF(sar.related_view)) )) = 0;
  WR2: NOT EXISTS(SELF\Product_view_definition.name);
END_ENTITY;
(*

Attribute definitions:

derived_from: an inherited attribute shall be of type Part_string_template for the Laminate_text_string_component.

message_contents: specifies the role of the Text_literal_with_extent for the Laminate_text_string_component.

Formal propositions:

WR1: The components inherited from Assembly_group_component shall only refer Laminate_component as related_view.

WR2: The name shall not be populated.

4.4.56 Layer_connection_point   EXPRESS-GMapping table

A Layer_connection_point is a type of Shape_element that resides on the surface of a Design_layer_stratum in the Layered_interconnect_module_design_view and is defined in the coordinate system of the Layered_interconnect_module_design_view. The Layer_connection_point Application Object is an intersection concept between the topology requirements, the point domain that satisfies those requirements in a geometric coordinate system and the Stratum material definition that has the proper domain specific conductivity to enable the realized shape to support the topology requirements.

NOTE 1   The set of Layer_connection_point associated with a Stratum_feature form a sample of the point domain of that Stratum_feature In some cases centreline curves define the point domain. In some cases boundary curves define the point domain. In all cases it is expected that the set of Layer_connection_point be a subset of the defined point domain.

NOTE 2   The Layer_connection_point location in an area based stratum feature should be sufficiently within the perimeter of the stratum feature to ensure unambiguous interpretation of the extent of the point domain.

EXAMPLE    A Layer_connection_point may be referenced by a Conductive_interconnect_element with a truncated end condition in which case the Layer_connection_point is congruent with the edge of the component of the Stratum_feature In that case the Layer_connection_point may be located on the edge of a Stratum_feature.

NOTE 3   A Layer_connection_point may be placed in an area where the conductive material is removed since there is no information contained in this Application Object regarding vertical material processes. It is the abstraction in this standard to separate lateral material description from the vertical material modification processes.

NOTE 4   A Layer_connection_point should not be referenced by an Inter_stratum_join_relationship extending on one side of the resident_design_layer_stratum and an embedded_physical_component_path extending on the other side. Use the Same join relationship for the entire vertical extent.

NOTE 5   Both two-dimensional and three-dimensional locations are provided to support the case where both a two-dimensional and a three-dimensional representation of the interconnect design exist.

A Layer_connection_point is either an Explicitly_located_layer_connection_point or a Dependently_located_layer_connection_point.

EXPRESS specification:

*)
ENTITY Layer_connection_point
  ABSTRACT SUPERTYPE OF (ONEOF (Explicitly_located_layer_connection_point,
                                Dependently_located_layer_connection_point))
  SUBTYPE OF (Shape_element);
  location_2d : OPTIONAL Cartesian_point;
  location_3d : OPTIONAL Cartesian_point;
  SELF\Shape_element.associated_definition RENAMED resident_design_layer_stratum : Design_layer_stratum;
DERIVE
  reference_network : Generic_physical_network := limd_get_generic_network( inter_join_path, intra_join_path, embedded_physical_component_path, unrouted_join_path);
INVERSE
  inter_join_path : SET[0:1] OF Inter_stratum_join_relationship FOR points_to_be_connected;
  intra_join_path : SET[0:?] OF Intra_stratum_join_relationship FOR points_to_be_connected;
  embedded_physical_component_path : SET[0:?] OF Stratum_embedded_physical_component_join_relationship FOR point_to_be_connected;
  unrouted_join_path : SET[0:1] OF Unrouted_join_relationship FOR unrouted_lcp;
UNIQUE
  UR1: SELF\Shape_element.element_name, resident_design_layer_stratum;
WHERE
  WR1: EXISTS(location_2d) OR EXISTS(location_3d);
  WR2: NOT (EXISTS(location_2d)) OR ((SIZEOF(location_2d\Cartesian_point.coordinates)) = 2);
  WR3: NOT (EXISTS(location_3d)) OR ((SIZEOF(location_3d\Cartesian_point.coordinates)) = 3);
  WR4: EXISTS(reference_network);
  WR5: NOT EXISTS (SELF\Shape_element.description);
  WR6: SIZEOF(QUERY(ijp <* intra_join_path | NOT(resident_design_layer_stratum :=: ijp.associated_stratum) )) = 0;
END_ENTITY;
(*

Attribute definitions:

location_2d: specifies the role of the Cartesian_point for the Layer_connection_point. The value of this attribute need not be specified.

location_3d: specifies the role of the Cartesian_point for the Layer_connection_point. The value of this attribute need not be specified.

resident_design_layer_stratum: specifies the Design_layer_stratum upon which the Layer_connection_point is located.

reference_network: specifies the role of the Generic_physical_network for the Layer_connection_point.

inter_join_path: specifies an inverse relationship that specifies that the existence of the Layer_connection_point is dependent on the existence of the Inter_stratum_join_relationship that specifies the Layer_connection_point as its points_to_be_connected. There shall exist not more than one Inter_stratum_join_relationship for the Layer_connection_point.

intra_join_path: specifies an inverse relationship that specifies that the existence of the Layer_connection_point is dependent on the existence of the Intra_stratum_join_relationship that specifies the Layer_connection_point as its points_to_be_connected. There shall exist zero or more Intra_stratum_join_relationships for the Layer_connection_point.

embedded_physical_component_path: specifies an inverse relationship that specifies that the existence of the Layer_connection_point is dependent on the existence of the Stratum_embedded_physical_component_join_relationship that specifies the Layer_connection_point as its point_to_be_connected. There shall be zero or more Stratum_embedded_physical_component_join_relationships for a Layer_connection_point.

unrouted_join_path: specifies an inverse relationship that specifies that the existence of the Layer_connection_point is dependent on the existence of the Unrouted_join_relationship that specifies the Layer_connection_point as its unrouted_lcp. There shall exist not more than one Unrouted_join_relationship for the Layer_connection_point.

Formal propositions:

UR1: The combination of element_name and resident_design_layer_stratum shall be unique within a population of Layer_connection_points.

WR1: There shall be at least one location for a Layer_connection_point.

WR2: If location_2d exists then the dimensionality of the geometric context shall be two.

WR3: If location_3d exists then the dimensionality of the geometric context shall be three.

WR4: The reference_network shall exist.

WR5: The description shall not be populated.

WR6: Each Intra_stratum_join_relationship that references this Layer_connection_point shall reference the resident_design_layer_stratum as it's associated_stratum.

4.4.57 Layer_stack_region   EXPRESS-GMapping table

A Layer_stack_region is a type of Instanced_feature that specifies a boundary for a set of one or more Local_linear_stack. The boundary is given by a closed curve, representing the area of the region. Stratums with no matching Stratum_technology_occurrence in the set of Local_linear_stack do not exist within the region.

EXPRESS specification:

*)
ENTITY Layer_stack_region
  SUBTYPE OF (Instanced_feature);
  applied_stack : SET[1:?] OF Local_linear_stack;
  SELF\Shape_element.associated_definition : Layered_interconnect_module_design_view;
WHERE
  WR1: EXISTS(SELF\Shape_element.associated_definition\Product_view_definition.primary_shape_representation) AND (NOT EXISTS(SELF\Shape_element.associated_definition\Product_view_definition.auxiliary_shape_representations));
  WR2: 'CONSTRUCTIVE_SOLID_GEOMETRY_2D_ARM.SINGLE_BOUNDARY_CSG_2D_MODEL' IN TYPEOF (SELF\Shape_element.associated_definition\Product_view_definition.primary_shape_representation);
END_ENTITY;
(*

Attribute definitions:

applied_stack: specifies one or more Local_linear_stack that are constrained to be within the area defined by the Layer_stack_region.

associated_definition: specifies the Layered_interconnect_module_design_view that establishes the design definition which the Layer_stack_region helps to compose.

Formal propositions:

WR1: There shall be exactly one geometric model for the Layer_stack_region.

WR2: The single geometric model for the Layer_stack_region shall be of type Single_boundary_csg_2d_model.

NOTE    Due to geometric conventions in application of 2D CAD systems, geometric models of design features may extend slightly beyond the boundary established by the primary_shape_representation to avoid geometric errors. The use case for a receiving application determines the proper behaviour when that situation occurs.

EXAMPLE    Copper patterns defined in a Local_linear_stack exceed the boundary of the primary_shape_representation in a fabrication process. Because the milling operation is performed after the pattern exposure, the overall size constraint established by the Layer_stack_region is adhered to by the fabrication process.

4.4.58 Layered_interconnect_module_design_view   EXPRESS-GMapping table

A Layered_interconnect_module_design_view is a type of Interconnect_module_design_view. A Layered_interconnect_module_design_view may be a Layered_interconnect_panel_design_view. A Layered_interconnect_module_design_view is a design view of a product. A Layered_interconnect_module_design_view may be an aggregation of Stratum. A Layered_interconnect_module_design_view may be an aggregation of Interconnect_module_component. A Layered_interconnect_module_design_view features are defined by Stratum_feature, within the bounds established by Inter_stratum_feature.

NOTE    Not all products defined by this design view are classified in general as interconnect substrates.

EXAMPLE 1   A package may be defined by the design owners using the Layered_interconnect_module_design_view design view.

EXAMPLE 2   A ribbon cable, minus the connectors, may be defined by the design owners using the Layered_interconnect_module_design_view design view. Complex 3d arrangements of the ribbon may be supported.

EXPRESS specification:

*)
ENTITY Layered_interconnect_module_design_view
  SUPERTYPE OF (Layered_interconnect_panel_design_view)
  SUBTYPE OF (Interconnect_module_design_view);
  used_stack_model : Design_stack_model;
INVERSE
  requirements : SET[0:?] OF Requirement_assignment FOR assigned_to;
WHERE
  WR1: (SIZEOF(USEDIN(SELF,'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.INTERCONNECT_MODULE_STRATUM_ASSEMBLY_RELATIONSHIP.' + 'ASSEMBLY')) = 0) OR (SIZEOF(QUERY(imsar <* USEDIN(SELF, 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.INTERCONNECT_MODULE_STRATUM_ASSEMBLY_RELATIONSHIP.' + 'ASSEMBLY') | (('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.DESIGN_LAYER_STRATUM' IN TYPEOF(imsar.component)) AND (imsar.component\Design_layer_stratum.primary_design_layer_stratum = TRUE)))) = 1);
  WR2: NOT EXISTS (SELF\Product_view_definition.additional_characterization);
  WR3: SIZEOF(QUERY(vdr <* USEDIN(SELF, 'PRODUCT_VIEW_DEFINITION_RELATIONSHIP_ARM.VIEW_DEFINITION_RELATIONSHIP.' + 'RELATING_VIEW') | (('ASSEMBLY_STRUCTURE_ARM.ASSEMBLY_COMPONENT_RELATIONSHIP' IN TYPEOF(vdr)) AND ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.INTERCONNECT_MODULE_EDGE' IN TYPEOF(vdr.related_view))) )) = 1;
END_ENTITY;
(*

Attribute definitions:

used_stack_model: specifies the role of the Design_stack_model for the Layered_interconnect_module_design_view.

requirements: an inverse relationship that specifies that the existence of the Layered_interconnect_module_design_view is dependent on the existence of the Requirement_assignment that specifies the Layered_interconnect_module_design_view as its assigned_to. There shall exist zero more more Requirement_assignment for an Layered_interconnect_module_design_view.

Formal propositions:

WR1: If Layered_interconnect_module_design_view is referenced by at least one Interconnect_module_stratum_assembly_relationship then there shall be exactly one primary design layer stratum in the Layered_interconnect_module_design_view.

WR2: The additional_characterization shall not be populated.

WR3: There shall be exactly one Interconnect_module_edge included as a component for an Layered_interconnect_module_design_view.

4.4.59 Layered_interconnect_panel_design_view   EXPRESS-GMapping table

A Layered_interconnect_panel_design_view is a type of Layered_interconnect_module_design_view.

EXPRESS specification:

*)
ENTITY Layered_interconnect_panel_design_view
  SUBTYPE OF (Layered_interconnect_module_design_view);
END_ENTITY;
(*

4.4.60 Layout_junction   EXPRESS-GMapping table

A Layout_junction is a means to help define partial routing of a layout. It may be referenced by an Unrouted_join_relationship.

EXPRESS specification:

*)
ENTITY Layout_junction;
  name : STRING;
  associated_definition : Layered_interconnect_module_design_view;
  net : Generic_physical_network;
  location : Cartesian_point;
UNIQUE
  UR1: location, net;
  UR2: name, net;
WHERE
  WR1: associated_definition :=: net.current_associated_definition;
END_ENTITY;
(*

Attribute definitions:

name: the words by which the Layout_junction is known within a Generic_physical_network.

associated_definition: specifies the Layered_interconnect_module_design_view for the Layout_junction. The associated_definition is the scope of the Generic_physical_network of the Layout_junction.

net: specifies the Generic_physical_network for the Layout_junction. The net specifies the scope for identification of the Layout_junction, and for location identification.

location: specifies the Cartesian_point relative to the Cartesian_point origin of the Layered_interconnect_module_design_view at which the Layout_junction resides.

Formal propositions:

UR1: The combination of location and net shall be unique within a population of Layout_junctions.

UR2: The combination of name and net shall be unique within a population of Layout_junctions.

WR1: The associated_definition shall be the current_associated_definition of the net.

4.4.61 Library_reference_view_definition_relationship   EXPRESS-GMapping table

A Library_reference_view_definition_relationship is a type of View_definition_relationship that is provided to relate a definition in a design context to a definition in a library context, when the design context definition is not identical to the library context definition but is a derivation.

EXAMPLE    A design layer may be related to a layer in a library stackup model, and relating the two instance with a member of this Application Object will make the relationship explicit.

EXPRESS specification:

*)
ENTITY Library_reference_view_definition_relationship
  SUBTYPE OF (View_definition_relationship);
WHERE
  WR1: NOT EXISTS(SELF\View_definition_relationship.relation_type);
END_ENTITY;
(*

Formal propositions:

WR1: The relation_type shall not be populated.

4.4.62 Material_removal_laminate_component   EXPRESS-GMapping table

A Material_removal_laminate_component is a type of Laminate_component that indicates that material is to be removed in the realization of the item that is in the role of design_intent. A Material_removal_laminate_component may be an Electrical_isolation_laminate_component The requirement shall be interpreted mathematically as a requirement for application of the regularized Boolean subtraction operation. If a Material_removal_laminate_component is created as part of an instantiation of a component for which it is a member and that component has a template that specifies shape properties, the explicitly_created attribute shall not be set.

NOTE 1   The case of a stratum being in the role of design_intent occurs when a member of Material_removal_laminate_component has no other knowledge about it's target design intent. This may occur when a removal figure does not intersect with an addition figure in the source CAD system. In this case, the Material_removal_laminate_component is provided so that a pre-processor may provide the full details of the source intent to the target application.

NOTE 2   A Material_removal_laminate_component is not used to represent passages or cutouts or cavities.

NOTE 3   A Material_removal_laminate_component that is created as a result of applying a library data element is not considered to be explicitly created since the definition exists in the library.

EXAMPLE 1   A closed figure on a power plane layer that does not intersect any explicit plane figures will be interpreted as removing material from the overall extent of the plane. In this example, the power plane is represented internally in a CAD system as a negative image, and there is another closed figure on the plane that completely encapsulates the example figure.

EXAMPLE 2   A trim in Land shape may occur, in which case the Land would be designated as the design_intent.

EXAMPLE 3   An interior region in Land shape may be removed, in which case the Land would be designated as the design_intent.

EXAMPLE 4   A Material_removal_laminate_component that is created as part of a Footprint_occurrence will not have the explicitly_created attribute set since it is created as part of the Footprint_occurrence.

EXAMPLE 5   A closed figure in a power plane created by a designer will have the explicitly_created attribute set because the figure is defined as part of the design.

EXPRESS specification:

*)
ENTITY Material_removal_laminate_component
  SUBTYPE OF (Laminate_component);
  causal_item : OPTIONAL limd_restriction_basis_item;
  design_intent : SET[1:?] OF stratum_feature_template_component_or_stratum;
  SELF\Definition_based_product_occurrence.derived_from : material_removal_feature_template_or_parametric_template;
  explicitly_created : BOOLEAN;
WHERE
  WR1: SIZEOF(QUERY(sa <* design_intent | NOT( NOT('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM' IN TYPEOF(sa)) OR (SIZEOF(design_intent) = 1)))) = 0;
END_ENTITY;
(*

Attribute definitions:

causal_item: specifies the limd_restriction_basis_item for the Material_removal_laminate_component. The value of this attribute need not be specified.

design_intent: specifies the stratum_feature_template_component_or_stratum for the Material_removal_laminate_component. There shall exist one or more stratum_feature_template_component_or_stratum for the Material_removal_laminate_component.

derived_from: an inherited attribute shall be of type material_removal_feature_template_or_parametric_template for the Material_removal_laminate_component.

explicitly_created: an attribute shall be set only for case where there is no predefined requirement that is related to a template shape.

Formal propositions:

WR1: If Stratum is a member of design_intent then there shall be exactly one member of design_intent.

4.4.63 Material_removal_laminate_text_component   EXPRESS-GMapping table

A Material_removal_laminate_text_component is a type of Generic_laminate_text_component included to support the case of material removals in the form of text that is to be interpreted by a human or machine vision system.

EXPRESS specification:

*)
ENTITY Material_removal_laminate_text_component
  SUBTYPE OF (Generic_laminate_text_component);
  design_intent : SET[1:?] OF stratum_feature_template_component_or_stratum;
WHERE
  WR1: SIZEOF(QUERY(sa <* design_intent | NOT( NOT('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM' IN TYPEOF(sa)) OR (SIZEOF(design_intent) = 1)))) = 0;
END_ENTITY;
(*

Attribute definitions:

design_intent: specifies the role of the stratum_feature_template_component_or_stratum for the Material_removal_laminate_text_component.

Formal propositions:

WR1: If Stratum is a member of design_intent then there shall be exactly one member of design_intent.

4.4.64 Material_removal_structured_component   EXPRESS-GMapping table

A Material_removal_structured_component is a type of Structured_layout_component.

EXPRESS specification:

*)
ENTITY Material_removal_structured_component
  SUBTYPE OF (Structured_layout_component);
  SELF\Definition_based_product_occurrence.derived_from : Material_removal_structured_template;
WHERE
  WR1: NOT EXISTS(SELF\Product_view_definition.name);
END_ENTITY;
(*

Attribute definitions:

derived_from: an inherited attribute shall be of type Material_removal_structured_template for the Material_removal_structured_component.

Formal propositions:

WR1: The name shall not be populated.

4.4.65 Multi_layer_material_removal_laminate_component   EXPRESS-GMapping table

A Multi_layer_material_removal_laminate_component is a type of Material_removal_laminate_component that modifies geometry on a collection of layers in a design based on one reference layer.

EXAMPLE    A solder mask hole that depends on the shape of a Land may be represented by a Multi_layer_material_removal_laminate_component.

EXPRESS specification:

*)
ENTITY Multi_layer_material_removal_laminate_component
  SUBTYPE OF (Material_removal_laminate_component);
  derived_layer_geometry : Stratum_feature_based_derived_pattern;
END_ENTITY;
(*

Attribute definitions:

derived_layer_geometry: specifies the role of the Stratum_feature_based_derived_pattern for the Multi_layer_material_removal_laminate_component.

4.4.66 Multi_layer_stratum_feature_template_component   EXPRESS-GMapping table

A Multi_layer_stratum_feature_template_component is a type of Stratum_feature_template_component. A Multi_layer_stratum_feature_template_component is included to allow the creation of shapes on sequential Stratum where those shapes are identical to the shape that references the Multi_layer_stratum_feature_template_component.

EXAMPLE    The domain feature known as "edge finger connector" consists of multiple Stratum of Copper, Nickel, Gold and each material shape is based on the shape of the underlying Stratum_feature_template_component in the Copper Stratum.

EXPRESS specification:

*)
ENTITY Multi_layer_stratum_feature_template_component
  SUBTYPE OF (Stratum_feature_template_component);
  derived_layer_geometry : Stratum_feature_based_derived_pattern;
WHERE
  WR1: SELF\Stratum_feature_template_component.implementation_or_resident_stratum\Stratum_feature.resident_stratum :=: derived_layer_geometry.reference_stratum_feature.associated_definition;
END_ENTITY;
(*

Attribute definitions:

derived_layer_geometry: specifies the role of the Stratum_feature_based_derived_pattern for the Multi_layer_stratum_feature_template_component.

Formal propositions:

WR1: The Stratum in role of resident_stratum of implementation_or_resident_stratum for Multi_layer_stratum_feature_template_component shall also be in role of reference_stratum_feature of derived_layer_geometry.

4.4.67 Multi_stratum_special_symbol_component   EXPRESS-GMapping table

A Multi_stratum_special_symbol_component is a type of Structured_layout_component provided to support a geometric-based query by a manufacturing or test process for an enterprise or industry specific graphic element.

EXAMPLE    A national or international safety logo may be embedded in a design layer to indicate compliance with the specification associated with that logo.

EXPRESS specification:

*)
ENTITY Multi_stratum_special_symbol_component
  SUBTYPE OF (Structured_layout_component);
  SELF\Definition_based_product_occurrence.derived_from : Multi_stratum_special_symbol_template;
WHERE
  WR1: NOT EXISTS(SELF\Product_view_definition.name);
END_ENTITY;
(*

Attribute definitions:

derived_from: an inherited attribute shall be of type Multi_stratum_special_symbol_template for the Multi_stratum_special_symbol_component.

Formal propositions:

WR1: The name shall not be populated.

4.4.68 Padstack_occurrence   EXPRESS-GMapping table

A Padstack_occurrence is a type of Structured_layout_component. A Padstack_occurrence organizes the various Land and Inter_stratum_features so that one placement may suffice for all Application Objects that are derived from the placement of one padstack.

EXPRESS specification:

*)
ENTITY Padstack_occurrence
  SUBTYPE OF (Structured_layout_component);
  SELF\Definition_based_product_occurrence.derived_from : Padstack_definition;
INVERSE
  SELF\Assembly_group_component.components : SET[1:?] OF Structured_layout_component_sub_assembly_relationship FOR relating_view;
WHERE
  WR1: SIZEOF(QUERY(sar <* components | EXISTS(sar.second_location) )) = 0;
END_ENTITY;
(*

Attribute definitions:

derived_from: an inherited attribute shall be of type Padstack_definition for the Padstack_occurrence.

components: an inverse relationship that specifies that the existence of the Padstack_occurrence is dependent on the existence of the Structured_layout_component_sub_assembly_relationship that specifies the Padstack_occurrence as its relating_view. There shall exist one or more Structured_layout_component_sub_assembly_relationship for the Padstack_occurrence.

Formal propositions:

WR1: No member of Structured_layout_component_sub_assembly_relationship referenced by components shall have the second_location attribute provided.

NOTE    A Padstack_occurrence is not allowed to be a multi level structure.

4.4.69 Partially_plated_cutout   EXPRESS-GMapping table

A Partially_plated_cutout is a type of Cutout that is not a completely plated cutout for reason of manufacturing capabilities or design purposes.

EXPRESS specification:

*)
ENTITY Partially_plated_cutout
  SUBTYPE OF (Cutout);
INVERSE
  plated_segment : SET[1:?] OF Plated_cutout_edge_segment FOR composed_cutout;
  unplated_segment : SET[1:?] OF Unplated_cutout_edge_segment FOR composed_cutout;
END_ENTITY;
(*

Attribute definitions:

plated_segment: specifies an inverse relationship that specifies that the existence of the Partially_plated_cutout is dependent on the existence of the Plated_cutout_edge_segment that specifies the Partially_plated_cutout as a composed_cutout. There shall be one or more Plated_cutout_edge_segments in the role of plated_segment for the Partially_plated_cutout. The plated_segment specifies the segment that is plated.

unplated_segment: specifies an inverse relationship that specifies that the existence of the Partially_plated_cutout is dependent on the existence of the Unplated_cutout_edge_segment that specifies the Partially_plated_cutout as a composed_cutout. There shall be one or more Unplated_cutout_edge_segments in the role of unplated_segment for the Partially_plated_cutout. The unplated_segment specifies the segment that is unplated.

4.4.70 Partially_plated_interconnect_module_edge   EXPRESS-GMapping table

A Partially_plated_interconnect_module_edge is a type of Interconnect_module_edge that is not a completely plated edge for reason of manufacturing capabilities or design purposes.

EXPRESS specification:

*)
ENTITY Partially_plated_interconnect_module_edge
  SUBTYPE OF (Interconnect_module_edge);
INVERSE
  plated_segment : SET[1:?] OF Plated_interconnect_module_edge_segment FOR composed_edge;
  unplated_segment : SET[1:?] OF Unplated_interconnect_module_edge_segment FOR composed_edge;
WHERE
  WR1: NOT EXISTS(SELF\Product_view_definition.name);
END_ENTITY;
(*

Attribute definitions:

plated_segment: specifies an inverse relationship that specifies that the existence of the Partially_plated_interconnect_module_edge is dependent upon the existence of the Plated_interconnect_module_edge_segment that specifies the Partially_plated_interconnect_module_edge in the role of composed_edge. There shall be one or more Plated_interconnect_module_edge_segments for the Partially_plated_interconnect_module_edge.

unplated_segment: specifies an inverse relationship that specifies that the existence of the Partially_plated_interconnect_module_edge is dependent upon the existence of the Unplated_interconnect_module_edge_segment that specifies the Partially_plated_interconnect_module_edge in the role of composed_edge. There shall be one or more Unplated_interconnect_module_edge_segments for the Partially_plated_interconnect_module_edge.

Formal propositions:

WR1: The name shal not be populated.

4.4.71 Physical_connectivity_interrupting_cutout   EXPRESS-GMapping table

A Physical_connectivity_interrupting_cutout is a type of Cutout that is included in the design of an Layered_interconnect_module_design_view for the purpose of interrupting one or more connectivity elements in an Layered_interconnect_module_design_view.

NOTE    A Physical_connectivity_interrupting_cutout is used where a relayout of the design that would remove the connectivity elements from the design is not provided, but where traceability to a Physical_connectivity_definition is required.

EXPRESS specification:

*)
ENTITY Physical_connectivity_interrupting_cutout
  SUBTYPE OF (Cutout);
  interrupted_connectivity_element : SET[1:?] OF Conductive_interconnect_element;
END_ENTITY;
(*

Attribute definitions:

interrupted_connectivity_element: specifies the Conductive_interconnect_element that is interrupted with the Physical_connectivity_interrupting_cutout. There shall be one or more Conductive_interconnect_elements for a Physical_connectivity_interrupting_cutout.

4.4.72 Physical_network_group   EXPRESS-GMapping table

A Physical_network_group is a type of Group. A Physical_network_group is either a Pre_defined_physical_network_group or a Externally_defined_physical_network_group.

EXPRESS specification:

*)
ENTITY Physical_network_group
  ABSTRACT SUPERTYPE OF (ONEOF (Pre_defined_physical_network_group,
                                Externally_defined_physical_network_group))
  SUBTYPE OF (Group);
  SELF\Group.elements : SET[1:?] OF Generic_physical_network;
END_ENTITY;
(*

Attribute definitions:

elements: an inherited attribute shall be of type Generic_physical_network for the Physical_network_group. There shall exist at least one Generic_physical_network for the Physical_network_group.

4.4.73 Physical_network_group_element_relationship   EXPRESS-GMapping table

A Physical_network_group_element_relationship is a type of Group_relationship. A Physical_network_group_element_relationship is either a Pre_defined_physical_network_group_element_relationship or a Externally_defined_physical_network_group_element_relationship.

EXPRESS specification:

*)
ENTITY Physical_network_group_element_relationship
  ABSTRACT SUPERTYPE OF (ONEOF (Pre_defined_physical_network_group_element_relationship,
                                Externally_defined_physical_network_group_element_relationship))
  SUBTYPE OF (Group_relationship);
  SELF\Group_relationship.relating_group : Physical_network_group;
  SELF\Group_relationship.related_group : Physical_network_group;
WHERE
  WR1: acyclic_physical_network_group_element_relationship(SELF, [related_group], 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.PHYSICAL_NETWORK_GROUP_ELEMENT_RELATIONSHIP');
END_ENTITY;
(*

Attribute definitions:

relating_group: an inherited attribute shall be of type Physical_network_group for the Physical_network_group_element_relationship.

related_group: an inherited attribute shall be of type Physical_network_group for the Physical_network_group_element_relationship.

Formal propositions:

WR1: The graph of instances of the Application Object Physical_network_group_element_relationship shall not contain a cycle.

4.4.74 Physical_network_supporting_inter_stratum_feature   EXPRESS-GMapping table

A Physical_network_supporting_inter_stratum_feature is a type of Inter_stratum_join_implementation and a type of Plated_inter_stratum_feature, that is included in the design for the purpose of implementing connectivity. A Physical_network_supporting_inter_stratum_feature references the Generic_physical_network it is supporting through a relationship to the Join_relationship application object that it inherits from the Inter_stratum_join_implementation application object.

EXPRESS specification:

*)
ENTITY Physical_network_supporting_inter_stratum_feature
  SUBTYPE OF (Plated_inter_stratum_feature, Inter_stratum_join_implementation);
END_ENTITY;
(*

4.4.75 Physical_network_supporting_stratum_feature_conductive_join   EXPRESS-GMapping table

A Physical_network_supporting_stratum_feature_conductive_join is a type of Inter_stratum_join_implementation and a type of Stratum_feature_conductive_join, that is included in the design for the purpose of implementing a Generic_physical_network. A Physical_network_supporting_stratum_feature_conductive_join effects an interconnection from a succeeding conductive material deposition to a preceding conductive material deposition for the purpose of implementing connectivity.

EXPRESS specification:

*)
ENTITY Physical_network_supporting_stratum_feature_conductive_join
  SUBTYPE OF (Stratum_feature_conductive_join, Inter_stratum_join_implementation);
END_ENTITY;
(*

4.4.76 Plated_cutout   EXPRESS-GMapping table

A Plated_cutout is a type of Cutout and a type of Plated_inter_stratum_feature. The Plated_cutout is an interior volume of the substrate, such as a void included for passage of a shaft, and may be plated for EMI shielding purposes. This object conveys the semantic that the interior referenced by the related shape is conductive.

EXPRESS specification:

*)
ENTITY Plated_cutout
  SUBTYPE OF (Cutout, Plated_inter_stratum_feature);
END_ENTITY;
(*

4.4.77 Plated_cutout_edge_segment   EXPRESS-GMapping table

A Plated_cutout_edge_segment is a type of Cutout_edge_segment and a type of Plated_inter_stratum_feature that helps compose a Partially_plated_cutout. The Plated_cutout_edge_segment is a feature with a specified shape that makes up part of the edge of a Partially_plated_cutout.

EXPRESS specification:

*)
ENTITY Plated_cutout_edge_segment
  SUBTYPE OF (Cutout_edge_segment, Plated_inter_stratum_feature);
  SELF\Cutout_edge_segment.composed_cutout : Partially_plated_cutout;
END_ENTITY;
(*

Attribute definitions:

composed_cutout: specifies the Partially_plated_cutout for whose edge this Plated_cutout_edge_segment is a segment.

4.4.78 Plated_inter_stratum_feature   EXPRESS-GMapping table

A Plated_inter_stratum_feature is a type of Inter_stratum_feature with deposited metal on its walls that makes an electrical connection between conductive patterns on internal Design_layer_stratum, external Design_layer_stratum, or both, of a printed circuit board. A Plated_inter_stratum_feature is one of a Plated_cutout, a Plated_cutout_edge_segment, a Plated_interconnect_module_edge, a Plated_interconnect_module_edge_segment, or a Plated_passage.

NOTE 1   A cross-section illustration of Plated_inter_stratum_feature that is the result of a wet chemistry process is shown in figure 11. An expanded view of one section of the feature is shown in figure 12.



Figure 11 —  Plated_inter_stratum_feature cross-section

Figure 11 —  Plated_inter_stratum_feature cross-section



Figure 12 —  Exploded view of Plated_inter_stratum_feature

Figure 12 —  Exploded view of Plated_inter_stratum_feature

NOTE 2   Plated_inter_stratum_features that completely pass through the PCB are sometimes known as plated through holes.

NOTE 3   Plated_inter_stratum_features are features that may be custom designed for this design by creating custom Inter_stratum_feature_template shapes.

EXPRESS specification:

*)
ENTITY Plated_inter_stratum_feature
  ABSTRACT SUPERTYPE OF (ONEOF (Plated_cutout,
                                Plated_interconnect_module_edge,
                                Plated_cutout_edge_segment,
                                Plated_interconnect_module_edge_segment,
                                Plated_passage))
  SUBTYPE OF (Inter_stratum_feature);
WHERE
  WR1: SELF\Inter_stratum_feature.vertical_extent.allocated_technology.plated_passage = TRUE;
END_ENTITY;
(*

Formal propositions:

WR1: The plated_passage attribute of the Passage_technology referenced by the vertical_extent attribute inherited from Inter_stratum_feature shall be TRUE.

4.4.79 Plated_interconnect_module_edge   EXPRESS-GMapping table

A Plated_interconnect_module_edge is a type of Interconnect_module_edge and a type of Plated_inter_stratum_feature that forms one of the edges of an interconnect substrate.

EXPRESS specification:

*)
ENTITY Plated_interconnect_module_edge
  SUBTYPE OF (Interconnect_module_edge, Plated_inter_stratum_feature);
WHERE
  WR1: NOT EXISTS(SELF\Product_view_definition.name);
END_ENTITY;
(*

Formal propositions:

WR1: The name shall not be populated.

4.4.80 Plated_interconnect_module_edge_segment   EXPRESS-GMapping table

A Plated_interconnect_module_edge_segment is a type of Interconnect_module_edge_segment and a type of Plated_inter_stratum_feature that forms a section of the edge of an interconnect substrate.

EXAMPLE    Figure 13 illustrates an edge segment that is plated. Note that the opposite side of the cross-section is unplated. There is not enough information in the figure to define the extent of the plated segment.



Figure 13 —  Plated_interconnect_module_edge_segment

Figure 13 —  Plated_interconnect_module_edge_segment

EXPRESS specification:

*)
ENTITY Plated_interconnect_module_edge_segment
  SUBTYPE OF (Plated_inter_stratum_feature, Interconnect_module_edge_segment);
  SELF\Interconnect_module_edge_segment.composed_edge : Partially_plated_interconnect_module_edge;
END_ENTITY;
(*

Attribute definitions:

composed_edge: specifies the Partially_plated_interconnect_module_edge that contains the Plated_interconnect_module_edge_segment.

4.4.81 Plated_passage   EXPRESS-GMapping table

A Plated_passage is a type of Plated_inter_stratum_feature. A Plated_passage may be either a Component_termination_passage or a Via.

EXAMPLE    Figure 14 graphically collects the various types of plated passages into a more generic category.



Figure 14 —  Plated_passage

Figure 14 —  Plated_passage

EXPRESS specification:

*)
ENTITY Plated_passage
  SUPERTYPE OF (ONEOF (Component_termination_passage,
                       Via))
  SUBTYPE OF (Plated_inter_stratum_feature);
  SELF\Inter_stratum_feature.vertical_extent : Passage_technology_allocation_to_stack_model;
WHERE
  WR1: NOT EXISTS(SELF\Product_view_definition.name);
END_ENTITY;
(*

Attribute definitions:

vertical_extent: an inherited attribute shall be of type Passage_technology_allocation_to_stack_model for the Plated_passage.

Formal propositions:

WR1: The name shall not be populated.

4.4.82 Pre_defined_physical_network_group   EXPRESS-GMapping table

A Pre_defined_physical_network_group is a type of Physical_network_group.

EXPRESS specification:

*)
ENTITY Pre_defined_physical_network_group
  SUBTYPE OF (Physical_network_group);
WHERE
  WR1: SELF\Group.membership_meaning IN Pre_defined_physical_network_group_types;
END_ENTITY;
(*

Formal propositions:

WR1: The membership_meaning shall be in type of Pre_defined_physical_network_group_types.

4.4.83 Pre_defined_physical_network_group_element_relationship   EXPRESS-GMapping table

A Pre_defined_physical_network_group_element_relationship is a type of Physical_network_group_element_relationship.

EXPRESS specification:

*)
ENTITY Pre_defined_physical_network_group_element_relationship
  SUBTYPE OF (Physical_network_group_element_relationship);
WHERE
  WR1: SELF\Group_relationship.relation_type IN Pre_defined_physical_network_group_relation_types;
END_ENTITY;
(*

Formal propositions:

WR1: The relation_type shall be in type of Pre_defined_physical_network_group_relation_types.

4.4.84 Primary_stratum_indicator_symbol   EXPRESS-GMapping table

A Primary_stratum_indicator_symbol is a type of Single_stratum_special_symbol_component that is used to identify the arbitrarily named primary side of a printed circuit board.

NOTE    This symbol may be found in the stratum material of the conductive stratum that is on the primary side of the printed circuit board, implemented in a stratum of silk-screen printed marking ink on the primary side, or otherwise. The primary side is normally defined as that side of the printed circuit board which will contain the largest number of components, but in cases where the component count is balanced, the primary side is arbitrarily named for convenience. Not all printed circuit boards contain this symbol.

EXPRESS specification:

*)
ENTITY Primary_stratum_indicator_symbol
  SUBTYPE OF (Single_stratum_special_symbol_component);
END_ENTITY;
(*

4.4.85 Probe_access_area   EXPRESS-GMapping table

A Probe_access_area is a type of Shape_element and a type of Laminate_component. A Probe_access_area may be an Internal_probe_access_area. A Probe_access_area is a feature incorporated into the design of an Layered_interconnect_module_design_view for the purpose of measuring electrical characteristics of the design. It is realized by an area of conducting material that is externally available to measurement equipment. The area of conducting material may be helping to compose the Conductor or Conductive_filled_area upon which the measurement is to be made. The Probe_access_area specifies the Stratum which it helps to compose.

EXAMPLE 1   Figure 15 illustrates a detail of a layout drawing that shows a probe area in the layout. Sufficient detail may be included in the design to evaluate accurately probe placement and volume restrictions.



Figure 15 —  Probe_access_area

Figure 15 —  Probe_access_area

EXAMPLE 2   A Probe_access_area may be a small metalization area placed inside a larger metalization feature such as a Conductive_interconnect_element that may not be physically visible except for associated soldermask clearance.

NOTE 1   The geometry of the Probe_access_area is provided by the Assembly_component_2d_shape_model or by the Assembly_component_3d_shape_model.

NOTE 2   A Probe_access_area generated directly from CAD data may not reference the final plating finish since some CAD systems do not have built-in models of the final finish. In this case, the error in the height approximation would have to be taken into account in the receiving system or eliminated by another application that added the final finish data.

EXPRESS specification:

*)
ENTITY Probe_access_area
  SUPERTYPE OF (Internal_probe_access_area)
  SUBTYPE OF (Laminate_component, Shape_element);
  SELF\Definition_based_product_occurrence.derived_from : Stratum_feature_template;
  probed_layout_item : stratum_feature_or_stratum;
  connection_area : SET[1:1] OF Connection_zone_in_design_view;
  stratum_feature_material_stackup : OPTIONAL Stratum_feature_based_derived_pattern;
DERIVE
  SELF\Shape_element.associated_definition : Probe_access_area := SELF;
  SELF\Shape_element.element_name : STRING := '';
  SELF\Shape_element.product_definitional : BOOLEAN := TRUE;
INVERSE
  network : Routed_physical_network FOR probe;
WHERE
  WR1: NOT (EXISTS(stratum_feature_material_stackup) AND NOT('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.INTERNAL_PROBE_ACCESS_AREA' IN TYPEOF(SELF))) OR (('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE' IN TYPEOF(probed_layout_item)) AND (probed_layout_item :=: stratum_feature_material_stackup\Stratum_feature_based_derived_pattern.reference_stratum_feature));
END_ENTITY;
(*

Attribute definitions:

derived_from: an inherited attribute shall be of type Stratum_feature_template for the Probe_access_area.

probed_layout_item: specifies the role of the stratum_feature_or_stratum for the Probe_access_area.

connection_area: the area specified by the Connection_zone_in_design_view for the Probe_access_area. There shall exist exactly one Connection_zone_in_design_view for the Probe_access_area.

stratum_feature_material_stackup: specifies the role of the Stratum_feature_based_derived_pattern for the Probe_access_area. The value of this attribute need not be specified.

associated_definition: an derived attribute that shall have this Probe_access_area as its value.

element_name: the name of the Probe_access_area. It shall be ' '.

product_definitional: a Probe_access_area shall be definitional.

network: specifies an inverse relationship that specifies that the existence of the Probe_access_area is dependent on the existence of the Routed_physical_network that specifies the Probe_access_area as its probe.

Formal propositions:

WR1: If stratum_feature_material_stackup is provided and if Probe_access_area is not an Internal_probe_access_area then probed_layout_item is a Stratum_feature and that Stratum_feature is referenced by the reference_stratum_feature of stratum_feature_material_stackup.

4.4.86 Region_based_derived_pattern   EXPRESS-GMapping table

A Region_based_derived_pattern is an extent of contiguous strata in a pcb. The geometry of the Stratum_feature of the reference_stratum is intersected with the the geometry of the region. The result of the intersection is applied to each of the strata in the referenced Inter_stratum_extent.

EXPRESS specification:

*)
ENTITY Region_based_derived_pattern;
  extent : Inter_stratum_extent;
  reference_stratum : design_or_documentation_stratum;
  region : Csg_2d_model;
END_ENTITY;
(*

Attribute definitions:

extent: specifies the role of the Inter_stratum_extent for the Region_based_derived_pattern.

reference_stratum: specifies the role of the design_or_documentation_stratum for the Region_based_derived_pattern.

region: specifies the role of the Csg_2d_model for the Region_based_derived_pattern.

4.4.87 Routed_join_relationship   EXPRESS-GMapping table

A Routed_join_relationship is a type of Join_relationship whose implementations are provided. A Routed_join_relationship is one of an Inter_stratum_join_relationship, an Intra_stratum_join_relationship, or a Stratum_embedded_physical_component_join_relationship.

NOTE 1   In domain terms, routed refers to a completed state of the section of the Routed_physical_network controlled by the Routed_join_relationship.

NOTE 2   The implementation or implementations of a Join_relationship may need to be determined by a query of those Inter_stratum_join_implementation or Conductor, or Connected_filled_area, or Direct_stratum_component_join_implementation, or Indirect_stratum_component_join_implementation that reference that Join_relationship. Reference the individual Application Object descriptions for the specific role of the Join_relationship for the implementation.

NOTE 3   When layout feature constructs intersect to help compose an implementation of a Join_relationship, the structure of the model based on this part of ISO 10303 may differ from the internal CAD system model structure. When layout feature constructs intersect the locations of control points in the model based on this part of ISO 10303 may vary from the locations of the trace terminus and control points in the source CAD system due to roundoff error. A pre-processor will need to take these error sources into account and provide sufficient Join_relationships to guarantee that the topology of the physical network is maintained.

EXAMPLE    A CAD system considers the following valid construction of a conductor: A first trace intersects at 90 degrees a second trace. The overlap is 100 nanometres. The width of each trace is 10,000 nanometres. The Curve_style_parameters_with_ends.end_extension value is truncate for the first trace. The source CAD resolution is 10 nanometres and uses 32 bit integer math. The pre-processor author determines by examination of the source CAD system specification that the correct value for uncertainty is 10 nanometres. Precision is not a concern in that the pre-processor uses double precision arithmetic. The pre-processor application evaluates the source data set and concludes that the first trace does intersect the second trace and creates an Intra_stratum_join_relationship. The pre-processor converts the traces into two members of Conductive_interconnect_element_with_pre_defined_transitions. The pre-processor converts the terminus points of the traces into members of Conductive_interconnect_element_terminal and Explicitly_located_layer_connection_point. The pre-processor then populates the aggregate attribute of the previously created member of Intra_stratum_join_relationship that collects the relevant Layer_connection_points.

EXPRESS specification:

*)
ENTITY Routed_join_relationship
  ABSTRACT SUPERTYPE OF (ONEOF (Inter_stratum_join_relationship,
                                Intra_stratum_join_relationship,
                                Stratum_embedded_physical_component_join_relationship))
  SUBTYPE OF (Join_relationship);
INVERSE
  network_topology : Routed_physical_network FOR routed_connectivity_requirement_element;
END_ENTITY;
(*

Attribute definitions:

network_topology: specifies an inverse relationship that specifies that the existence of the Routed_join_relationship is dependent on the existence of the Routed_physical_network that specifies the Routed_join_relationship as its routed_connectivity_requirement_element.

4.4.88 Routed_physical_network   EXPRESS-GMapping table

A Routed_physical_network is a type of Generic_physical_network. A Routed_physical_network is a description of a mapping from requirements to layout. The layout may be incomplete with unrouted elements. The set of unrouted elements shall be a subset of the total requirement set. The design features that are implementing the Routed_physical_network are accessed by traversing the structure specified by the routed_connectivity_requirement_element attribute.

EXPRESS specification:

*)
ENTITY Routed_physical_network
  SUBTYPE OF (Generic_physical_network);
  routed_connectivity_requirement_element : SET[1:?] OF Routed_join_relationship;
  probe : OPTIONAL SET[1:?] OF Probe_access_area;
DERIVE
  complete : BOOLEAN := NOT EXISTS(unrouted_connectivity_requirement_element);
  valid_net : LOGICAL := (SIZEOF(SELF\Generic_physical_network.connectivity_requirement_element) > 1 );
WHERE
  WR1: SIZEOF(QUERY(cre <* SELF\Generic_physical_network.connectivity_requirement_element | NOT (NOT ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.LAND_JOIN_TERMINAL' IN TYPEOF(cre)) OR (SIZEOF(TYPEOF(cre\Component_feature.associated_definition) * ['LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.CONTACT_SIZE_DEPENDENT_LAND']) = 1)))) = 0;
  WR2: NOT EXISTS(SELF\Generic_physical_network.reference_connected_terminals) OR (SELF\Generic_physical_network.reference_connected_terminals.associated_definition = SELF\Generic_physical_network.current_associated_definition\Part_design_view.usage_view);
END_ENTITY;
(*

Attribute definitions:

routed_connectivity_requirement_element: specifies the role of the Routed_join_relationship for the Routed_physical_network. There shall exist one or more Routed_join_relationships for the Routed_physical_network.

probe: specifies the role of the Probe_access_area for the Routed_physical_network. There shall exist one or more Probe_access_areas for the Routed_physical_network. The value of this attribute need not be specified.

complete: an attribute that is true if unrouted_connectivity_requirement_element is not provided. The attribute shall be false if unrouted_connectivity_requirement_element is provided.

valid_net: specifies that the Routed_physical_network is a valid network, that there are at least two terminals participating in the network in the role of connectivity_requirement_element inherited from the Generic_physical_network.

Formal propositions:

WR1: If Routed_physical_network refers Land_join_terminal as connectivity_requirement_element, then associated_definition of Land_join_terminal shall be of type Contact_size_dependent_land.

WR2: The associated_definition of reference_connected_terminals and usage_view of current_associated_definition shall be equal.

Informal propositions:

IP1: All join_relationships referenced by a Routed_physical_network in the role of routed_connectivity_requirement_element or in the role of unrouted_connectivity_requirement_element shall be in the current_associated_definition.

IP2: All unrouted_join_relationships referenced by a Routed_physical_network in the role of unrouted_connectivity_requirement_element shall be in the current_associated_definition.

IP3: The material electrical conductivity category shall be the same for all materials that implement the Routed_physical_network.

4.4.89 Single_stratum_special_symbol_component   EXPRESS-GMapping table

A Single_stratum_special_symbol_component is a type of Structured_layout_component such as an enterprise logo, trademark, or other enterprise specific symbol. A Single_stratum_special_symbol_component may be a Primary_stratum_indicator_symbol.

NOTE 1   A Single_stratum_special_symbol_component may or may not be limited to a member of a library of accepted symbols.

NOTE 2   A Single_stratum_special_symbol_component may or may not be scalable. A Single_stratum_special_symbol_component may or may not be associated with a physical net.

NOTE 3   These symbols may be stored in a library for legal reasons.

EXPRESS specification:

*)
ENTITY Single_stratum_special_symbol_component
  SUPERTYPE OF (Primary_stratum_indicator_symbol)
  SUBTYPE OF (Structured_layout_component);
  SELF\Definition_based_product_occurrence.derived_from : Single_stratum_special_symbol_template;
WHERE
  WR1: NOT EXISTS(SELF\Product_view_definition.name);
END_ENTITY;
(*

Attribute definitions:

derived_from: an inherited attribute shall be of type Special_symbol_template for the Single_stratum_special_symbol_component.

Formal propositions:

WR1: The name shall not be populated.

4.4.90 Stratum   EXPRESS-GMapping table

A Stratum is a type of Part_view_definition. A Stratum may be a Documentation_layer_stratum or a Design_layer_stratum. A Stratum consists of a single material within an interconnect substrate. The vertical contours of either boundary surface may vary. Thus, the thickness of the stratum may vary throughout its range. The material used may be specific, such as 24K gold, or more general, such as etched copper. There may only be one boundary.

EXAMPLE    Figure 16 illustrates a detail of a stackup drawing included on a fabrication drawing in some cases. In most cases, the detail in this figure is generated at the fabricator's facility from more generic engineering data. This part of ISO 10303 is capable of supporting exchange of generic material stackup data or very explicit material stackup data. This part of ISO 10303 considers either stackup data set as design data.



Figure 16 —  Stratum

Figure 16 —  Stratum

EXPRESS specification:

*)
ENTITY Stratum
  SUPERTYPE OF (ONEOF (Documentation_layer_stratum,
                       Design_layer_stratum))
  SUBTYPE OF (Part_view_definition);
  SELF\Product_view_definition.id : STRING;
  definition : Stratum_technology_occurrence;
DERIVE
  of_average_surface : SET[0:1] OF Stratum_average_surface := QUERY(tmp <* of_surface | 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_AVERAGE_SURFACE' IN TYPEOF(tmp));
  base_component : SET[0:?] OF Area_component := get_base_component(SELF);
  of_product_version : SET[1:?] OF Product_version := bag_to_set(QUERY(pv <* USEDIN(assembly[1].assembly.defined_version.of_product, 'PRODUCT_VERSION_ARM.PRODUCT_VERSION.OF_PRODUCT') | (SIZEOF(QUERY( pd <* USEDIN(pv, 'PRODUCT_VIEW_DEFINITION_ARM.PRODUCT_VIEW_DEFINITION.DEFINED_VERSION') | (SIZEOF(QUERY(nauo <* USEDIN(pd, 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.INTERCONNECT_MODULE_STRATUM_ASSEMBLY_RELATIONSHIP.ASSEMBLY') | (SELF = nauo.component))) = 1) )) = 1) ));
  of_technology : Stratum_technology := definition\Stratum_technology_occurrence.definition;
INVERSE
  of_surface : SET[0:3] OF Stratum_surface FOR of_stratum;
  assembly : SET[1:?] OF Interconnect_module_stratum_assembly_relationship FOR component;
  stratum_usage : SET[0:1] OF External_source_identification FOR item;
  material_product : SET[0:1] OF Make_from_relationship FOR related_view;
WHERE
  WR1: SIZEOF(QUERY(tmp <* of_surface | tmp\Stratum_surface.name = stratum_surface_designation.average_surface)) <= 1;
  WR2: NOT(SIZEOF(QUERY(tmp <* of_surface | tmp\Stratum_surface.name = stratum_surface_designation.average_surface)) = 1) OR (SIZEOF(of_surface) = 3);
  WR3: SIZEOF(QUERY(tmp <* of_surface | tmp\Stratum_surface.name = stratum_surface_designation.primary_surface)) <= 1;
  WR4: SIZEOF(QUERY(tmp <* of_surface | tmp\Stratum_surface.name = stratum_surface_designation.secondary_surface)) <= 1;
  WR5: NOT(SIZEOF(QUERY(tmp <* of_surface | tmp\Stratum_surface.name = stratum_surface_designation.secondary_surface)) = 1) OR (SIZEOF(QUERY(tmp <* of_surface | tmp\Stratum_surface.name = stratum_surface_designation.primary_surface)) = 1);
  WR6: NOT EXISTS (SELF\Product_view_definition.additional_characterization);
  WR7: SIZEOF(QUERY(asse <* assembly | NOT(asse.assembly.defined_version.of_product = assembly[1].assembly.defined_version.of_product) )) = 0;
  WR8: SIZEOF(of_product_version) = SIZEOF(assembly);
  WR9: SELF\Product_view_definition.defined_version IN of_product_version;
  WR10: NOT ( SIZEOF(material_product)= 1) OR (material_product[1].relating_view IN of_technology\Stratum_technology.stratum_material[1].items);
  WR11: SIZEOF(base_component) < 2;
END_ENTITY;
(*

Attribute definitions:

id: the identifier that distinguishes the Stratum. It is equal to the id attribute inherited from Product_view_definition.

definition: specifies the role of the Stratum_technology_occurrence for the Stratum.

of_average_surface: a derived attribute which specifies the Stratum_average_surface of the Stratum as its of_stratum. There shall be no more than one Stratum_average_surface for a Stratum.

base_component: specifies the role of the Area_component for the Stratum. There shall exist zero or more Area_components for the Stratum.

of_product_version: the set of Product_versions associated with this member of Stratum.

of_technology: specifies the role of the Stratum_technology for the Stratum.

of_surface: an inverse attribute which specifies zero or three Stratum_surface for a Stratum.

assembly: specifies an inverse relationship that specifies that the existence of the Stratum is dependent on the existence of the Interconnect_module_stratum_assembly_relationship that specifies the Stratum as its component. There shall be one or more Interconnect_module_stratum_assembly_relationship for a Stratum, but they shall all be for the same product.

stratum_usage: specifies an inverse relationship that specifies that the existence of the Stratum is dependent on the existence of the External_source_identification that specifies the Stratum as its item. The stratum_usage need not be specified for a particular Stratum.

material_product: specifies an inverse relationship that specifies that the existence of the Stratum is dependent on the existence of the Make_from_relationship that specifies the Stratum as its related_view. The material_product need not be specified for a particular Stratum.

Formal propositions:

WR1: There shall be no more than one Stratum_surface with name set to average_surface in members of of_surface.

WR2: If Stratum_average_surface is a member of of_surface then the size of surface shall be less than three.

WR3: There shall be no more than one Stratum_surface with name set to primary_surface in members of of_surface.

WR4: There shall be no more than one Stratum_surface with name set to secondary_surface in members of of_surface.

WR5: If the secondary stratum surface is specified, then the primary stratum surface shall be specified as well.

WR6: The additional_characterization shall not be populated.

WR7: The same product shall be referenced by all members of assembly as assembly.assembly.defined_version.of_product.

WR8: The number of members of of_product_version shall be the same as the number of members of assembly.

NOTE    since the rule is comparing the size of two sets, if they are the same size it is guaranteed that each member of assembly is referencing exactly one member of Product_version and that each member of Product_version is referenced by exactly one member of assembly.

WR9: The defined_version shall be a member of of_product_version.

WR10: If a material_product is provided, the relating_view shall be in the set of items of the stratum_material referenced by the Stratum_technology in the role of of_technology.

WR11: There shall be no more than one Area_component with is_base set to TRUE for any particular Stratum.

4.4.91 Stratum_average_surface   EXPRESS-GMapping table

A Stratum_average_surface is a type of Stratum_surface used to specify the constructed geometry that is the average of the primary and secondary surface for a Stratum. A Stratum_average_surface is provided as a construction aid in defining a Stratum.

EXPRESS specification:

*)
ENTITY Stratum_average_surface
  SUBTYPE OF (Stratum_surface);
WHERE
  WR1: SELF\Stratum_surface.name = stratum_surface_designation.average_surface;
END_ENTITY;
(*

Formal propositions:

WR1: The name of a Stratum_surface in the role of a Stratum_average_surface shall be equal to average_surface.

4.4.92 Stratum_embedded_physical_component_join_relationship   EXPRESS-GMapping table

A Stratum_embedded_physical_component_join_relationship is a type of Routed_join_relationship, in which the elements to be joined, Layer_connection_point, and Layer_connection_point, shall be on different materials in the interconnect, either Design_layer_stratum or embedded physical component. A Stratum_embedded_physical_component_join_relationship is a requirement for a Direct_stratum_component_join_implementation or is a requirement for an Indirect_stratum_component_join_implementation. A Stratum_embedded_physical_component_join_relationship is a Join_relationship between between materials that are fabricated as part of a manufacturing process and discrete material that is fabricated as part of a different process. A stratum embedded physical component join relationship associates one or more Embedded_physical_component_terminal with one or more Layer_connection_point as part of the implementation of a Generic_physical_network. This is required since an Embedded_physical_component_terminal is not directly referenced by a Layer_connection_point since an Embedded_physical_component_terminal is not a Stratum. The Layer_connection_point are not required to be on the same Stratum.

NOTE 1   There may be more than one member of Design_layer_stratum associated with this Application Object since some members of Layer_connection_point that are joined by a member of the Stratum_embedded_physical_component_join_relationship may be on different Design_layer_stratum.

NOTE 2   The Generic_physical_network must reference this AO in order for the connection to the Embedded_physical_component_terminal to be verified. The usual case is for one Layer_connection_point and one Embedded_physical_component_terminal to be associated with one stratum embedded physical component join relationship.

NOTE 3   There may be cases where a member of point_to_be_connected is associated with a Connection_zone referenced by a member of terminal_to_be_connected, and there may be more than one Connection_zone for a particular terminal.

NOTE 4   The embedded classification of a component is made implicitly, by referencing that component in an assembly relationship with a design that is an interconnect.

NOTE 5   In order for a design to be complete the implementations that specifies Stratum_embedded_physical_component_join_relationship in the role of topological_requirement must be populated.

EXPRESS specification:

*)
ENTITY Stratum_embedded_physical_component_join_relationship
  SUBTYPE OF (Routed_join_relationship);
  terminal_to_be_connected : SET[1:?] OF Embedded_physical_component_terminal;
  point_to_be_connected : SET[1:?] OF Layer_connection_point;
DERIVE
  associated_component : Assembly_component := terminal_to_be_connected[1]\Component_feature.associated_definition;
WHERE
  WR1: SIZEOF(QUERY(t <* terminal_to_be_connected | t.associated_definition <> associated_component)) = 0;
END_ENTITY;
(*

Attribute definitions:

terminal_to_be_connected: specifies the role of the Embedded_physical_component_terminal for the Stratum_embedded_physical_component_join_relationship. There shall be one or more Embedded_physical_component_terminals specified.

point_to_be_connected: specifies the role of the Layer_connection_point for the Stratum_embedded_physical_component_join_relationship. There shall exist one or more Layer_connection_points for the Stratum_embedded_physical_component_join_relationship.

associated_component: specifies an Assembly_component refered by terminal_to_be_connected as associated_definition.

Formal propositions:

WR1: The associated_component of Stratum_embedded_physical_component_join_relationship shall be the associated_definition for all members of Embedded_physical_component_terminal that are joined by a member of the Stratum_embedded_physical_component_join_relationship.

4.4.93 Stratum_feature   EXPRESS-GMapping table

A Stratum_feature is a type of Shape_element. A Stratum_feature may be either a Conductor or a Conductive_filled_area, or additionally may be a Fiducial_stratum_feature. A Stratum_feature is a shape realized in the material of the Stratum.

NOTE 1   The shape of the Stratum_feature is the result of evaluating the individual contributions including addition and subtraction of individual Laminate_component that contribute to the Stratum_feature.

EXAMPLE    Figure 17 illustrates several types of Stratum_feature. The Conductors shown are purposely distorted in aspect ratio because Conductors are enclosed shapes.



Figure 17 —  Stratum_feature

Figure 17 —  Stratum_feature

EXPRESS specification:

*)
ENTITY Stratum_feature
  SUPERTYPE OF (ONEOF (Conductor,
                       Conductive_filled_area)
               ANDOR Fiducial_stratum_feature)
  SUBTYPE OF (Shape_element);
  SELF\Shape_element.associated_definition RENAMED resident_stratum : design_or_documentation_stratum;
  feature_of_size : BOOLEAN;
INVERSE
  shape : SET[0:?] OF Stratum_feature_usage FOR definition;
UNIQUE
  UR1: SELF\Shape_element.element_name, resident_stratum;
WHERE
  WR1: SIZEOF(query ( ac <* USEDIN(SELF,'') | ('PHYSICAL_UNIT_DESIGN_VIEW_ARM.ASSEMBLY_COMPONENT' IN TYPEOF(ac)) AND (get_assemblies(ac) <> get_ims(resident_stratum)) )) = 0;
END_ENTITY;
(*

Attribute definitions:

resident_stratum: specifies the design_or_documentation_stratum being composed by the Stratum_feature.

feature_of_size: specifies whether or not the Stratum_feature interfaces with a feature of another product in an assembly context. A value of TRUE indicates that the Stratum_feature interfaces with a feature of another product. A value of FALSE indicates that the Stratum_feature does not interface with a feature of another product.

NOTE 2   Certain tolerance information depends on knowledge of a particular feature interfacing with features of a mating product.

shape: specifies an inverse relationship that specifies that the existence of the Stratum_feature is dependent on the existence of the Stratum_feature_usage that specifies the Stratum_feature as its definition. There shall exist zero or more Stratum_feature_usages for the Stratum_feature.

Formal propositions:

UR1: The combination of element_name and resident_stratum shall be unique within a population of Stratum_features.

WR1: If Assembly_component references the Stratum_feature then the set of Product_view_definitions referenced by the set of Assembly_component_relationship that reference the Assembly_component shall be the same set of Product_view_definitions that are referenced by the Interconnect_module_stratum_assembly_relationship that reference the Stratum that are referenced by resident_stratum.

4.4.94 Stratum_feature_based_derived_pattern   EXPRESS-GMapping table

A Stratum_feature_based_derived_pattern is a geometry for one particular item is copied from a design or documentation layer onto a set of other contiguous layers.

EXPRESS specification:

*)
ENTITY Stratum_feature_based_derived_pattern;
  extent : Inter_stratum_extent;
  reference_stratum_feature : Stratum_feature;
INVERSE
  layer_usage : SET[0:1] OF External_source_identification FOR item;
WHERE
  WR1: reference_stratum_feature\Stratum_feature.resident_stratum IN extent\Inter_stratum_extent.included_stratum;
  WR2: SIZEOF(['LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.DESIGN_LAYER_STRATUM', 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.DOCUMENTATION_LAYER_STRATUM'] * TYPEOF(reference_stratum_feature\Stratum_feature.resident_stratum)) = 1;
  WR3: SIZEOF(QUERY(ds <* extent\Inter_Stratum_extent.included_stratum | NOT('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.DERIVED_STRATUM' IN TYPEOF(ds)) )) = 1;
END_ENTITY;
(*

Attribute definitions:

extent: specifies the role of the Inter_stratum_extent for the Stratum_feature_based_derived_pattern.

reference_stratum_feature: specifies the Stratum_feature for the Stratum_feature_based_derived_pattern.

layer_usage: an inverse relationship that specifies that the existence of the Stratum_feature_based_derived_pattern is dependent on the existence of the External_source_identification that specifies the Stratum_feature_based_derived_pattern as its item.

Formal propositions:

WR1: The reference_stratum_feature shall be in the included_stratum of the Inter_stratum_extent referenced by extent.

WR2: The reference_stratum_feature shall be either a Design_layer_stratum or Documentation_layer_stratum.

WR3: There shall be exactly one Design_layer_stratum or Documentation_layer_stratum in the included_stratum of the extent.

4.4.95 Stratum_feature_conductive_join   EXPRESS-GMapping table

A Stratum_feature_conductive_join is a connection between two conductive Stratum_feature on disjoint Stratum that is not a passage. A Stratum_feature_conductive_join may be a Physical_network_supporting_stratum_feature_conductive_join.

NOTE    The two facing surfaces of conductive features are joined.

EXPRESS specification:

*)
ENTITY Stratum_feature_conductive_join
  SUPERTYPE OF (Physical_network_supporting_stratum_feature_conductive_join);
  relating_concept : Stratum_feature_template_component;
  related_concept : Stratum_feature_template_component;
  resulting_shape : OPTIONAL Geometric_model;
INVERSE
  technology_requirement : SET[1:?] OF Requirement_assignment FOR assigned_to;
WHERE
  WR1: related_concept.resident_stratum :<>: relating_concept.resident_stratum;
END_ENTITY;
(*

Attribute definitions:

relating_concept: the first of the instances of Stratum_feature_template_component that is part of the relationship.

related_concept: the second instance of Stratum_feature_template_component that is part of the relationship. If one element of the relationship is dependent up on the other, this attribute shall be the dependent one.

resulting_shape: specifies the Geometric_model for the Stratum_feature_conductive_join. The value of this attribute need not be specified.

technology_requirement: specifies an inverse relationship that specifies that the existence of the Stratum_feature_conductive_join is dependent on the existence of the Requirement_assignment that specifies the Stratum_feature_conductive_join as its assigned_to. There shall be one or more Requirement_assignments for a particular Stratum_feature_conductive_join.

Formal propositions:

WR1: The relating_concept and related_concept shall be on different stratums.

4.4.96 Stratum_feature_template_component   EXPRESS-GMapping table

A Stratum_feature_template_component is a type of Laminate_component. A Stratum_feature_template_component may be an Area_component or a Conductive_interconnect_element.

EXPRESS specification:

*)
ENTITY Stratum_feature_template_component
  SUPERTYPE OF (ONEOF (Area_component,
                       Conductive_interconnect_element))
  SUBTYPE OF (Laminate_component);
  SELF\Definition_based_product_occurrence.derived_from : stratum_feature_template_or_parametric_template;
  implementation_or_resident_stratum : stratum_feature_or_stratum;
  causal_item : OPTIONAL limd_restriction_basis_item;
DERIVE
  resident_stratum : Stratum := get_resident_stratum(SELF);
WHERE
  WR1: NOT EXISTS(SELF\Product_view_definition.name);
  WR2: ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.CONDUCTIVE_INTERCONNECT_ELEMENT_WITH_PRE_DEFINED_TRANSITIONS' IN TYPEOF(SELF)) OR NOT('LAYERED_INTERCONNECT_SIMPLE_TEMPLATE_ARM.TRACE_TEMPLATE' IN TYPEOF(derived_from));
END_ENTITY;
(*

Attribute definitions:

derived_from: an inherited attribute shall be of type stratum_feature_template_or_parametric_template for the Stratum_feature_template_component.

implementation_or_resident_stratum: specifies the stratum_feature_or_stratum that the Stratum_feature_template_component is helping to compose.

causal_item: specifies the limd_restriction_basis_item for the Stratum_feature_template_component. The value of this attribute need not be specified.

resident_stratum: specifies the role of the Stratum for the Stratum_feature_template_component.

Formal propositions:

WR1: The name shall not be populated.

WR2: If a member of Trace_template is specified by the derived_from attribute then the Stratum_feature_template_component shall be a Conductive_interconnect_element_with_pre_defined_transitions.

4.4.97 Stratum_feature_template_component_with_stratum_feature   EXPRESS-GMapping table

A Stratum_feature_template_component_with_stratum_feature is a type of Stratum_feature and a type of Stratum_feature_template_component.

EXPRESS specification:

*)
ENTITY Stratum_feature_template_component_with_stratum_feature
  SUBTYPE OF (Stratum_feature_template_component, Stratum_feature);
DERIVE
  SELF\Stratum_feature_template_component.implementation_or_resident_stratum : Stratum_feature := SELF;
END_ENTITY;
(*

Attribute definitions:

implementation_or_resident_stratum: an inherited attribute shall be of type Stratum_feature for the Stratum_feature_template_component_with_stratum_feature

4.4.98 Stratum_feature_usage   EXPRESS-GMapping table

A Stratum_feature_usage is a type of item_identified_representation_usage_definition.

EXPRESS specification:

*)
ENTITY Stratum_feature_usage
  SUBTYPE OF (Item_identified_representation_usage);
  SELF\Item_identified_representation_usage.definition : Stratum_feature;
  SELF\Item_identified_representation_usage.identified_item : limd_sf_shape_select;
  SELF\Item_identified_representation_usage.used_representation RENAMED used_model : limd_stratum_shape_model_select;
WHERE
  WR1: SELF\Item_identified_representation_usage.name = '';
  WR2: NOT EXISTS(SELF\Item_identified_representation_usage.description);
END_ENTITY;
(*

Attribute definitions:

definition: an inherited attribute shall be of type Stratum_feature for the Stratum_feature_usage.

identified_item: an inherited attribute shall be of type limd_sf_shape_select for the Stratum_feature_usage.

used_model: an inherited attribute shall be of type limd_stratum_shape_model_select for the Stratum_feature_usage.

Formal propositions:

WR1: The inherited attribute name shall be an empty string.

WR2: The inherited attribute description shall not be populated.

4.4.99 Stratum_surface   EXPRESS-GMapping table

A Stratum_surface is a means to specify the primary_surface or secondary_surface for a Stratum.

EXPRESS specification:

*)
ENTITY Stratum_surface;
  name : stratum_surface_designation;
  of_stratum : Stratum;
  of_technology : OPTIONAL Stratum_surface_technology;
UNIQUE
  UR1: name, of_stratum;
END_ENTITY;
(*

Attribute definitions:

name: the words by which the Stratum_surface is known. The name specifies the stratum_surface_designation for the Stratum_surface.

of_stratum: specifies the Stratum for a Stratum_surface.

of_technology: specifies a Stratum_surface_technology for the Stratum_surface. The Stratum_surface_technology is optional and need not be provided. The of_technology provides support for specifying surface conditions of a Stratum_surface.

Formal propositions:

UR1: The combination of name and of_stratum shall be unique within a population of Stratum_surface.

4.4.100 Structured_layout_component   EXPRESS-GMapping table

A Structured_layout_component is a type of Assembly_group_component specialized for interconnect layout purposes. A Structured_layout_component is either a Footprint_occurrence, or a Material_removal_structured_component, or a Multi_stratum_special_symbol_component, or a Padstack_occurrence, or a Single_stratum_special_symbol_component.

EXPRESS specification:

*)
ENTITY Structured_layout_component
  ABSTRACT SUPERTYPE OF (ONEOF (Footprint_occurrence,
                                Material_removal_structured_component,
                                Multi_stratum_special_symbol_component,
                                Padstack_occurrence,
                                Single_stratum_special_symbol_component))
  SUBTYPE OF (Assembly_group_component);
  SELF\Definition_based_product_occurrence.derived_from : Structured_template;
WHERE
  WR1: SIZEOF(TYPEOF(SELF) * ['LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.LAMINATE_COMPONENT', 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.PHYSICAL_COMPONENT']) = 0;
  WR2: SIZEOF(QUERY(agc <* SELF\Assembly_group_component.components | NOT('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRUCTURED_LAYOUT_COMPONENT_SUB_ASSEMBLY_RELATIONSHIP' IN TYPEOF(agc)))) = 0;
END_ENTITY;
(*

Attribute definitions:

derived_from: an inherited attribute shall be of type Structured_template for the Structured_layout_component.

Formal propositions:

WR1: The Structured_layout_component shall not be made complex with neither Laminate_component nor Physical_component.

WR2: All members of components shall be of type Structured_layout_component_sub_assembly_relationship.

4.4.101 Structured_layout_component_sub_assembly_relationship   EXPRESS-GMapping table

A Structured_layout_component_sub_assembly_relationship is a type of Next_assembly_usage_occurrence_relationship. A Structured_layout_component_sub_assembly_relationship may be a Footprint_occurrence_sub_assembly_relationship. A Structured_layout_component_sub_assembly_relationship maps a one or two level hierarchical input structure onto the flattened output structure necessary for physical layout. The input structure includes the template that is in the role of derived_from for the Structured_layout_component referenced by the relating_view attribute, the first_location, the second_location, and the overriding_shape. In the case that a Structured_layout_component_sub_assembly_relationship is design specific, an explicit Component_2d_location or Component_3d_location shall be provided instead of using a location derived from the first level of the input structure. That specific location shall reference the PCB shape as the assembly model.

EXPRESS specification:

*)
ENTITY Structured_layout_component_sub_assembly_relationship
  SUPERTYPE OF (Footprint_occurrence_sub_assembly_relationship)
  SUBTYPE OF (Next_assembly_usage_occurrence_relationship);
  SELF\Product_occurrence_definition_relationship.relating_view : Structured_layout_component;
  SELF\Product_occurrence_definition_relationship.related_view : Assembly_component;
  first_location : Template_location_in_structured_template;
  second_location : OPTIONAL Template_location_in_structured_template;
  overriding_shape : OPTIONAL Part_template_shape_model;
  design_specific_placement : BOOLEAN;
DERIVE
  first_location_overridden : LOGICAL := NOT EXISTS(second_location) AND (SELF\Product_occurrence_definition_relationship.related_view\Definition_based_product_occurrence.derived_from :<>: first_location.template);
  second_location_overridden : LOGICAL := EXISTS(second_location) AND (SELF\Product_occurrence_definition_relationship.related_view\Definition_based_product_occurrence.derived_from :<>: second_location.template);
UNIQUE
  UR1: first_location, second_location, relating_view, related_view;
WHERE
  WR1: NOT EXISTS(SELF\Assembly_component_relationship.location_indicator);
  WR2: first_location_overridden OR (SELF\Product_occurrence_definition_relationship.relating_view\Definition_based_product_occurrence.derived_from :=: first_location.assembly);
  WR3: first_location :<>: second_location;
  WR4: NOT first_location_overridden OR ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.PADSTACK_OCCURRENCE' IN TYPEOF(relating_view));
  WR5: NOT second_location_overridden OR ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.FOOTPRINT_OCCURRENCE' IN TYPEOF(relating_view));
  WR6: NOT (first_location_overridden AND second_location_overridden);
  WR7: NOT (EXISTS(overriding_shape) XOR (first_location_overridden OR second_location_overridden));
  WR8: NOT EXISTS(overriding_shape) OR (related_view.derived_from IN overriding_shape.shape_characterized_definition);
  WR9: NOT ((first_location\Template_location_in_structured_template.placement_status = template_location_placement_status.is_fixed) AND design_specific_placement);
END_ENTITY;
(*

Attribute definitions:

relating_view: an inherited attribute shall be of type Structured_layout_component that is being composed for the Structured_layout_component_sub_assembly_relationship.

related_view: an inherited attribute shall be of type Assembly_component that is helping with the composition for the Structured_layout_component_sub_assembly_relationship.

first_location: specifies one role of the Template_location_in_structured_template for the Structured_layout_component_sub_assembly_relationship. The first_location is intended to be the x,y location if one of the two locations is an x,y location.

second_location: specifies one role of the Template_location_in_structured_template for the Structured_layout_component_sub_assembly_relationship. The second_location is intended to be a location within the secondary level assembly structure of the main structured template. The value of this attribute need not be specified.

overriding_shape: specifies the role of the Part_template_shape_model for the Structured_layout_component_sub_assembly_relationship. In this case, the overriding_shape is used in place of the original shape. The value of this attribute need not be specified.

design_specific_placement: specifies that the placement or orientation of the template in the design is different from the placement or orientation in the definition.

first_location_overridden: the first_location_overridden is true if the assembly relationship specified by the first_location is replaced with another assembly relationship in the template definition. The first_location_overridden shall not be true if the second_location_overridden is true.

NOTE 1   The first_location_overridden cannot be true if the second_location_overridden is true because in that case related_view shall be an instance of template specified by second_location.

NOTE 2   There are two paths to the instance that is the definition of the Assembly_component specified by related_view when the first_location is not overridden. When the first_location is overridden the two paths do not return the same definition, thus providing the overide capability.

second_location_overridden: the second_location_overridden is true if the assembly relationship specified by the second_location is replaced with another assembly relationship in the template definition.

NOTE 3   There are two paths to the instance that is the definition of the Assembly_component specified by related_view when the second_location is not overridden. When the second_location is overridden the two paths do not return the same definition, thus providing the overide capability.

Formal propositions:

UR1: The combination of first_location, second_location, relating_view and related_view shall be unique within a population of Structured_layout_component_sub_assembly_relationships.

WR1: The location_indicator shall not be populated.

WR2: The first_location_overridden shall be true or the same entity instance shall be in the role of derived_from of relating_view and in the role of assembly of the first_location.

WR3: The first_location shall not be equal to the second_location.

WR4: If the first_location is overridden then the relating_view shall be a Padstack_occurrence.

WR5: If the second_location is overridden then the relating_view shall be a Footprint_occurrence.

WR6: The first_location_overridden and the second_location_overridden shall not both be true.

WR7: The overriding_shape shall exist if and only if one of locations is overriden.

WR8: If the overriding_shape is provided then the template referenced by the derived_from attribute of the component referenced by related_view shall be one of the items referenced by the shape_characterized_definition attribute of the model referenced by overriding_shape.

WR9: The case of design_specific_placement being equal to TRUE and a placement_status of is_fixed in the first_location shall not occur for a member of Structured_layout_component_sub_assembly_relationship.

4.4.102 Structured_layout_component_sub_assembly_relationship_with_component   EXPRESS-GMapping table

A Structured_layout_component_sub_assembly_relationship_with_component is a type of Assembly_component and a type of Structured_layout_component_sub_assembly_relationship. Pre-processor implementations are encouraged to use this Application Object in the case of complex surface mount components.

EXPRESS specification:

*)
ENTITY Structured_layout_component_sub_assembly_relationship_with_component
  SUBTYPE OF (Structured_layout_component_sub_assembly_relationship, Assembly_component);
DERIVE
  SELF\Structured_layout_component_sub_assembly_relationship.related_view : Assembly_component := SELF;
END_ENTITY;
(*

Attribute definitions:

related_view: an inherited attribute shall be of type Assembly_component for the Structured_layout_component_sub_assembly_relationship_with_component

4.4.103 Unplated_cutout_edge_segment   EXPRESS-GMapping table

An Unplated_cutout_edge_segment is a type of Cutout_edge_segment.

EXPRESS specification:

*)
ENTITY Unplated_cutout_edge_segment
  SUBTYPE OF (Cutout_edge_segment);
  SELF\Cutout_edge_segment.composed_cutout : Partially_plated_cutout;
WHERE
  WR1: NOT('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.PLATED_INTER_STRATUM_FEATURE' IN TYPEOF(SELF));
END_ENTITY;
(*

Attribute definitions:

composed_cutout: an inherited attribute shall be of type Partially_plated_cutout for the Unplated_cutout_edge_segment.

Formal propositions:

WR1: No instance of Unplated_cutout_edge_segment shall also be an instance of Plated_inter_stratum_feature.

4.4.104 Unplated_interconnect_module_edge_segment   EXPRESS-GMapping table

An Unplated_interconnect_module_edge_segment is a type of Interconnect_module_edge_segment.

EXPRESS specification:

*)
ENTITY Unplated_interconnect_module_edge_segment
  SUBTYPE OF (Interconnect_module_edge_segment);
  SELF\Interconnect_module_edge_segment.composed_edge : Partially_plated_interconnect_module_edge;
WHERE
  WR1: NOT('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.PLATED_INTER_STRATUM_FEATURE' IN TYPEOF(SELF));
END_ENTITY;
(*

Attribute definitions:

composed_edge: an inherited attribute shall be of type Partially_plated_interconnect_module_edge or the Unplated_interconnect_module_edge_segment.

Formal propositions:

WR1: No instance of Unplated_interconnect_module_edge_segment shall also be an instance of Plated_inter_stratum_feature.

4.4.105 Unrouted_conductive_interconnect_element   EXPRESS-GMapping table

An Unrouted_conductive_interconnect_element is a type of Conductive_interconnect_element. The data provided by Unrouted_conductive_interconnect_element is provided to identify an unrouted portion of a Generic_physical_network.

EXPRESS specification:

*)
ENTITY Unrouted_conductive_interconnect_element
  SUBTYPE OF (Conductive_interconnect_element);
  SELF\Stratum_feature_template_component.implementation_or_resident_stratum : Stratum;
END_ENTITY;
(*

Attribute definitions:

implementation_or_resident_stratum: an inherited attribute shall be of type Stratum for the Unrouted_conductive_interconnect_element.

4.4.106 Unrouted_join_relationship   EXPRESS-GMapping table

An Unrouted_join_relationship is a type of Join_relationship for which the implementation of the requirements specified by a Routed_physical_network is incomplete. An Unrouted_join_relationship specifies a set of items for which there is no geometric model of the implementation.

EXPRESS specification:

*)
ENTITY Unrouted_join_relationship
  SUBTYPE OF (Join_relationship);
  unrouted_terminals : OPTIONAL SET[1:?] OF Laminate_component_join_terminal;
  unrouted_lcp : OPTIONAL SET[1:?] OF Layer_connection_point;
  unrouted_junction : OPTIONAL SET[1:?] OF Layout_junction;
  unrouted_paa : OPTIONAL SET[1:?] OF Probe_access_area;
  unrouted_via : OPTIONAL SET[1:?] OF Via_terminal;
INVERSE
  network_topology : Generic_physical_network FOR unrouted_connectivity_requirement_element;
WHERE
  WR1: (SIZEOF(unrouted_terminals) + SIZEOF(unrouted_lcp) + SIZEOF(unrouted_paa) + SIZEOF(unrouted_via) + SIZEOF(unrouted_junction)) > 0;
END_ENTITY;
(*

Attribute definitions:

unrouted_terminals: specifies the role of the Laminate_component_join_terminal for the Unrouted_join_relationship. The value of this attribute need not be specified.

unrouted_lcp: specifies the role of the Layer_connection_point for the Unrouted_join_relationship. The value of this attribute need not be specified.

unrouted_junction: specifies the role of the Layout_junction for the Unrouted_join_relationship. There shall exist one or more Layout_junctions for the Unrouted_join_relationship. The value of this attribute need not be specified.

unrouted_paa: specifies the role of the Probe_access_area for the Unrouted_join_relationship. There shall exist one or more Probe_access_areas for the Unrouted_join_relationship. The value of this attribute need not be specified.

unrouted_via: specifies the role of the Via_terminal for the Unrouted_join_relationship. There shall exist one or more Via_terminals for the Unrouted_join_relationship. The value of this attribute need not be specified.

network_topology: specifies an inverse relationship that specifies that the existence of the Unrouted_join_relationship is dependent on the existence of the Generic_physical_network that specifies the Unrouted_join_relationship as its unrouted_connectivity_requirement_element.

Formal propositions:

WR1: There shall be at least one item specified by attributes of Unrouted_join_relationship.

4.4.107 Unrouted_physical_network   EXPRESS-GMapping table

An Unrouted_physical_network is a type of Generic_physical_network for which there are no subsets of the implementation completed.

NOTE    If any implementation is available a pre-processor should use a Routed_physical_network.

EXPRESS specification:

*)
ENTITY Unrouted_physical_network
  SUBTYPE OF (Generic_physical_network);
END_ENTITY;
(*

4.4.108 Unsupported_passage   EXPRESS-GMapping table

An Unsupported_passage is a type of Inter_stratum_feature that has no metallization in the realization of its walls.

EXPRESS specification:

*)
ENTITY Unsupported_passage
  SUBTYPE OF (Inter_stratum_feature);
  SELF\Definition_based_product_occurrence.derived_from : Unsupported_passage_template;
  SELF\Inter_stratum_feature.vertical_extent : Passage_technology_allocation_to_stack_model;
WHERE
  WR1: NOT EXISTS(SELF\Product_view_definition.name);
END_ENTITY;
(*

Attribute definitions:

derived_from: an inherited attribute shall be of type Unsupported_passage_template for the Unsupported_passage.

vertical_extent: an inherited attribute shall be of type Passage_technology_allocation_to_stack_model for the Unsupported_passage.

Formal propositions:

WR1: The name shall not be populated.

Informal propositions:

IP1: An Unsupported_passage shall be an inner feature.

4.4.109 Via   EXPRESS-GMapping table

A Via is a type of Plated_passage. Via is defined in IEC 60050-541.

EXAMPLE    Figure 18 illustrates a padstack that contains a Via.



Figure 18 —  Via

Figure 18 —  Via

EXPRESS specification:

*)
ENTITY Via
  ABSTRACT SUPERTYPE
  SUBTYPE OF (Plated_passage);
  SELF\Definition_based_product_occurrence.derived_from : Via_template;
END_ENTITY;
(*

Attribute definitions:

derived_from: an inherited attribute shall be of type Via_template for the Via.

4.4.110 Via_terminal   EXPRESS-GMapping table

A Via_terminal is a type of Laminate_component_feature. A Via_terminal is associated with the larger diameter wall of the Via that geometrically approximates a hollow cylinder with some thickness.

NOTE    Since the Via itself is not allowed to interface to an item external to the interconnect, there is no concept of a join or interface terminal associated with a Via. The Via_terminal is collocated with and congruent with the entire external wall of the cylinder and may be fastened to as often as necessary.

EXPRESS specification:

*)
ENTITY Via_terminal
  SUBTYPE OF (Laminate_component_feature);
  SELF\Component_feature.definition : Via_template_terminal;
  SELF\Component_feature.associated_definition : Via;
WHERE
  WR1: NOT EXISTS(SELF\Shape_element.description);
END_ENTITY;
(*

Attribute definitions:

definition: an inherited attribute shall be of type Via_template_terminal for the Via_terminal.

associated_definition: an inherited attribute shall be of type Via for the Via_terminal.

Formal propositions:

WR1: The description shall not be populated.

4.5 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.5.1 limd_assembly_component_subtypes   EXPRESS-GMapping table

The limd_assembly_component_subtypes constraint specifies a constraint that applies to instances of Assembly_component and enforces the rule that its subtypes Physical_component and Laminate_component are exclusive.

EXPRESS specification:

*)
SUBTYPE_CONSTRAINT limd_assembly_component_subtypes FOR Assembly_component;
  ONEOF (Physical_component,
         Laminate_component);
END_SUBTYPE_CONSTRAINT;
(*

4.5.2 array_placement_group_subtypes   EXPRESS-GMapping table

The array_placement_group_subtypes constraint specifies a constraint that applies to instances of Array_placement_group and enforces the rule that its subtypes Laminate_text_string_component, Linear_array_placement_group_component and Rectangular_array_placement_group_component are exclusive.

EXPRESS specification:

*)
SUBTYPE_CONSTRAINT array_placement_group_subtypes FOR Array_placement_group;
  ONEOF (Laminate_text_string_component,
         Linear_array_placement_group_component,
         Rectangular_array_placement_group_component);
END_SUBTYPE_CONSTRAINT;
(*

4.5.3 component_feature_subtypes   EXPRESS-GMapping table

The component_feature_subtypes constraint specifies a constraint that applies to instances of Component_feature and enforces the rule that its subtypes Physical_component_feature and Laminate_component_feature are exclusive.

EXPRESS specification:

*)
SUBTYPE_CONSTRAINT component_feature_subtypes FOR Component_feature;
  ONEOF (Physical_component_feature,
         Laminate_component_feature);
END_SUBTYPE_CONSTRAINT;
(*

4.5.4 component_terminal_subtypes   EXPRESS-GMapping table

The component_terminal_subtypes constraint specifies a constraint that applies to instances of Component_terminal and enforces the rule that its subtypes Physical_component_terminal and Laminate_component_join_terminal are exclusive.

EXPRESS specification:

*)
SUBTYPE_CONSTRAINT component_terminal_subtypes FOR Component_terminal;
  ONEOF (Physical_component_terminal,
         Laminate_component_join_terminal);
END_SUBTYPE_CONSTRAINT;
(*

4.5.5 inter_stratum_feature_subtypes   EXPRESS-GMapping table

The inter_stratum_feature_subtypes constraint specifies a constraint that applies to instances of Inter_stratum_feature and enforces the rule that its subtypes Cutout and Interconnect_module_edge are exclusive.

EXPRESS specification:

*)
SUBTYPE_CONSTRAINT inter_stratum_feature_subtypes FOR Inter_stratum_feature;
  ONEOF (Cutout,
         Interconnect_module_edge);
END_SUBTYPE_CONSTRAINT;
(*

4.5.6 interconnect_module_terminal_subtypes   EXPRESS-GMapping table

The interconnect_module_terminal_subtypes constraint specifies a constraint that applies to instances of Interconnect_module_terminal and enforces the rule that its subtypes Interconnect_module_interface_terminal and Interconnect_module_macro_terminal are exclusive.

EXPRESS specification:

*)
SUBTYPE_CONSTRAINT interconnect_module_terminal_subtypes FOR Interconnect_module_terminal;
  ONEOF (Interconnect_module_interface_terminal,
         Interconnect_module_macro_terminal);
END_SUBTYPE_CONSTRAINT;
(*

4.5.7 limd_part_view_definition_subtypes   EXPRESS-GMapping table

The limd_part_view_definition_subtypes constraint specifies a constraint that applies to instances of Part_view_definition and enforces the rule that its subtypes Part_usage_view, Part_design_view and Stratum are exclusive.

EXPRESS specification:

*)
SUBTYPE_CONSTRAINT limd_part_view_definition_subtypes FOR Part_view_definition;
  ONEOF (Part_usage_view,
         Part_design_view,
         Stratum);
END_SUBTYPE_CONSTRAINT;
(*

4.5.8 limd_template_definition_subtypes   EXPRESS-GMapping table

The limd_template_definition_subtypes constraint specifies a constraint that applies to instances of Template_definition and enforces the rule that its subtypes (ONEOF (Printed_part_template, Special_symbol_template) ANDOR Geometric_template), Non_conductive_cross_section_template, Part_string_template, Parametric_template, Part_text_template, Stratum_stack_model and Stratum_sub_stack are exclusive.

EXPRESS specification:

*)
SUBTYPE_CONSTRAINT limd_template_definition_subtypes FOR Template_definition;
  ONEOF ((ONEOF (Printed_part_template,
        Special_symbol_template)
 ANDOR Geometric_template),
      Non_conductive_cross_section_template,
      Part_string_template,
      Parametric_template,
      Part_text_template,
      Stratum_stack_model,
      Stratum_sub_stack);
END_SUBTYPE_CONSTRAINT;
(*

4.6 ARM function definitions

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

4.6.1 acyclic_area_component

The acyclic_area_component function determines whether the graph of instances of the Application Object type Area_component that contains relation as one of its links contains a cycle. This function may be used to evaluate Area_component or any of it's subtypes.

EXPRESS specification:

*)
FUNCTION acyclic_area_component (relation : Area_component; relatives : SET[1:?] OF Area_component; specific_relation : STRING) : BOOLEAN;
LOCAL
     x : SET OF Area_component;
  END_LOCAL;

    IF relation.replaced_component IN relatives THEN
      RETURN (FALSE);
    END_IF;
    x := QUERY(pd <* bag_to_set(USEDIN(relation.replaced_component,
      'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.' +
      'AREA_COMPONENT.' +
      'REPLACED_BY')) | specific_relation IN TYPEOF(pd));
    REPEAT i := 1 TO HIINDEX(x);
      IF NOT acyclic_area_component(x[i], relatives +
        relation.replaced_component, specific_relation) THEN
        RETURN (FALSE);
      END_IF;
    END_REPEAT;
    RETURN (TRUE);
END_FUNCTION;
(*

Argument definitions:

relation: the specified Area_component.

relatives: the set of specified Area_components.

specific_relation: the specified STRING.

4.6.2 acyclic_conductive_interconnect_element_terminal_link

The acyclic_conductive_interconnect_element_terminal_link function determines whether the graph of instances of the Application Object type Conductive_interconnect_element_terminal_link that contains relation as one of its links contains a cycle. This function may be used to evaluate Conductive_interconnect_element_terminal_link or any of it's subtypes.

EXPRESS specification:

*)
FUNCTION acyclic_conductive_interconnect_element_terminal_link (relation : Conductive_interconnect_element_terminal_link; relatives : SET[1:?] OF Conductive_interconnect_element_terminal; specific_relation : STRING) : BOOLEAN;
LOCAL
     x : SET OF Conductive_interconnect_element_terminal_link := [];
  END_LOCAL;

    IF relation.precedent_point IN relatives THEN
      RETURN (FALSE);
    END_IF;
    x := QUERY(pd <* bag_to_set(USEDIN(relation.precedent_point,
      'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.' +
      'CONDUCTIVE_INTERCONNECT_ELEMENT_TERMINAL_LINK.' +
      'SUBSEQUENT_POINT')) | specific_relation IN TYPEOF(pd));
    REPEAT i := 1 TO HIINDEX(x);
      IF NOT acyclic_conductive_interconnect_element_terminal_link(x[i], relatives +
        relation.precedent_point, specific_relation) THEN
        RETURN (FALSE);
      END_IF;
    END_REPEAT;
    RETURN (TRUE);
END_FUNCTION;
(*

Argument definitions:

relation: the specified Conductive_interconnect_element_terminal_link.

relatives: the set of specified Conductive_interconnect_element_terminals.

specific_relation: the specified STRING.

4.6.3 acyclic_physical_network_group_element_relationship

The acyclic_physical_network_group_element_relationship function determines whether the graph of instances of the Application Object type Physical_network_group_element_relationship that contains relation as one of its links contains a cycle. This function may be used to evaluate Physical_network_group_element_relationship or any of it's subtypes.

EXPRESS specification:

*)
FUNCTION acyclic_physical_network_group_element_relationship (relation : Physical_network_group_element_relationship; relatives : SET[1:?] OF Physical_network_group; specific_relation : STRING) : BOOLEAN;
LOCAL
     x : SET OF Physical_network_group_element_relationship := [];
  END_LOCAL;

    IF relation.relating_group IN relatives THEN
      RETURN (FALSE);
    END_IF;
    x := QUERY(pd <* bag_to_set(USEDIN(relation.relating_group,
      'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.' +
      'PHYSICAL_NETWORK_GROUP_ELEMENT_RELATIONSHIP.' +
      'RELATED_GROUP')) | specific_relation IN TYPEOF(pd));
    REPEAT i := 1 TO HIINDEX(x);
      IF NOT acyclic_physical_network_group_element_relationship(x[i], relatives +
        relation.relating_group, specific_relation) THEN
        RETURN (FALSE);
      END_IF;
    END_REPEAT;
    RETURN (TRUE);
END_FUNCTION;
(*

Argument definitions:

relation: the specified Physical_network_group_element_relationship.

relatives: the set of specified Physical_network_groups.

specific_relation: the specified STRING.

4.6.4 correlated_terminals

The correlated_terminals function checks if Conductive_interconnect_element_terminals defined by input1 match Conductive_interconnect_element_terminals defined by input2.

It returns True if the set of Conductive_interconnect_element_terminal defined by input1 contains same items as the set of Conductive_interconnect_element_terminal constructed from precedent_points and subsequent_points of Conductive_interconnect_element_terminal_links specified by input2.

It returns False otherwise.

EXPRESS specification:

*)
FUNCTION correlated_terminals (input1 : SET[0:?] OF Conductive_interconnect_element_terminal; input2 : SET[0:?] OF Conductive_interconnect_element_terminal_link) : LOGICAL;
LOCAL
      pass : LOGICAL := FALSE;
      ciet : SET OF conductive_interconnect_element_terminal := [];
    END_LOCAL;

    REPEAT i := 1 TO SIZEOF(input2) BY 1;
      ciet := ciet + input2[i].precedent_point;
      ciet := ciet + input2[i].subsequent_point;
    END_REPEAT;
    pass := (input1 = ciet);
   
   IF (pass = UNKNOWN) THEN
    RETURN(FALSE);
   END_IF;

    RETURN(pass);
END_FUNCTION;
(*

Argument definitions:

input1: the specified set of Conductive_interconnect_element_terminals.

input2: the specified set of Conductive_interconnect_element_terminal_links.

4.6.5 get_base_component

The get_base_component returns the set of Area_components that have the is_base attribute set to TRUE and that reference the Stratum that is the input either directly or through a member of Stratum_feature.

EXPRESS specification:

*)
FUNCTION get_base_component (input : Stratum) : SET[0:?] OF Area_component;
LOCAL
      ac: SET OF Area_component := [];
      i : INTEGER := 0;
     sf : SET OF Stratum_feature := bag_to_set(USEDIN(input,'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE.RESIDENT_STRATUM'));
 sftc_s : SET OF Stratum_feature_template_component := bag_to_set(
             USEDIN(input,'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE_TEMPLATE_COMPONENT.IMPLEMENTATION_OR_RESIDENT_STRATUM'));
sftc_sf : SET OF Stratum_feature_template_component := [];
 sftc_t : SET OF Stratum_feature_template_component := [];
    END_LOCAL;
    REPEAT i := 1 TO HIINDEX(sf) BY 1;
      sftc_sf := sftc_sf + bag_to_set(USEDIN(sf[i],'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE_TEMPLATE_COMPONENT.IMPLEMENTATION_OR_RESIDENT_STRATUM'));
    END_REPEAT;
       sftc_t := sftc_s + sftc_sf;
    REPEAT i := 1 to HIINDEX(sftc_t) BY 1;
      IF(('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.AREA_COMPONENT' IN TYPEOF(sftc_t[i])) AND
         (sftc_t[i]\Area_component.is_base = TRUE))
      THEN
       ac := ac + sftc_t[i];
      END_IF;
    END_REPEAT;
    RETURN(ac);
END_FUNCTION;
(*

Argument definitions:

input: the specified Stratum.

4.6.6 get_ims

The get_ims function returns the set of Product_view_definition that are the Layered_interconnect_module_design_views for the Stratum input to the function.

EXPRESS specification:

*)
FUNCTION get_ims (input : Stratum) : SET[0:?] OF Product_view_definition;
LOCAL
      imsar : SET OF Interconnect_module_stratum_assembly_relationship := input.assembly;
      pvd : SET OF Product_view_definition := [];
    END_LOCAL;
    REPEAT i := 1 TO HIINDEX(imsar) BY 1;
      pvd := pvd + imsar[i].assembly; 
    END_REPEAT;
    RETURN (pvd);
END_FUNCTION;
(*

Argument definitions:

input: the specified Stratum.

4.6.7 get_mrlc_not_for_base

The get_mrlc_not_for_base returns the set of Material_removal_laminate_component that relate to the input1 Documentation_layer_stratum through a Stratum_feature but do not relate to the base_component.

NOTE    The Material_removal_laminate_components that reference the input1 Documentation_layer_stratum directly are ignored in this function.

EXPRESS specification:

*)
FUNCTION get_mrlc_not_for_base (input1 : Documentation_layer_stratum; base_component : SET[0:?] OF Area_component) : SET[0:?] OF Material_removal_laminate_component;
LOCAL
      ac: SET OF Area_component := [];
      i : INTEGER := 0;
   mrlc : SET OF Material_removal_laminate_component := [];
 mrlc_b : SET OF Material_removal_laminate_component := [];
     sf : SET OF Stratum_feature := bag_to_set(USEDIN(input1,'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE.RESIDENT_STRATUM'));
 sftc_s : SET OF Stratum_feature_template_component  := bag_to_set(
             USEDIN(input1,'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE_TEMPLATE_COMPONENT.IMPLEMENTATION_OR_RESIDENT_STRATUM'));
sftc_sf : SET OF Stratum_feature_template_component   := [];
 sftc_t : SET OF Stratum_feature_template_component  := [];
    END_LOCAL;
    REPEAT i := 1 TO HIINDEX(sf) BY 1;
      sftc_sf := sftc_sf + bag_to_set(USEDIN(sf[i],'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE_TEMPLATE_COMPONENT.IMPLEMENTATION_OR_RESIDENT_STRATUM'));
    END_REPEAT;
       sftc_t := sftc_s + sftc_sf;
    REPEAT i := 1 to HIINDEX(sftc_t) BY 1;
        mrlc := mrlc + bag_to_set(USEDIN(sftc_t[i],'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.MATERIAL_REMOVAL_LAMINATE_COMPONENT.DESIGN_INTENT')); 
    END_REPEAT;
    REPEAT i := 1 to HIINDEX(base_component) BY 1;
        mrlc_b := mrlc + bag_to_set(USEDIN(base_component[i],'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.MATERIAL_REMOVAL_LAMINATE_COMPONENT.DESIGN_INTENT')); 
    END_REPEAT;
    RETURN(mrlc - mrlc_b);
END_FUNCTION;
(*

Argument definitions:

input1: the specified Documentation_layer_stratum.

base_component: the specified set of Area_components.

4.6.8 get_resident_stratum

The get_resident_stratum function returns the Stratum that the Stratum_feature_template_component is related to through the implementation_or_resident_stratum attribute of Stratum_feature_template_component, either directly or through the Stratum_feature that is referenced by the implementation_or_resident_stratum attribute of Stratum_feature_template_component.

EXPRESS specification:

*)
FUNCTION get_resident_stratum (input : Stratum_feature_template_component) : Stratum;
IF 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE' IN TYPEOF(input.implementation_or_resident_stratum)
      THEN RETURN(input.implementation_or_resident_stratum.resident_stratum);
      ELSE 
        IF 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM' IN TYPEOF(input.implementation_or_resident_stratum)
          THEN RETURN(input.implementation_or_resident_stratum);
        END_IF;  
    END_IF;
    RETURN(?);
END_FUNCTION;
(*

Argument definitions:

input: the specified Stratum_feature_template_component.

4.6.9 limd_get_generic_network

The limd_get_generic_network function returns the Generic_physical_network that is the network topology for the collection of input members.

EXPRESS specification:

*)
FUNCTION limd_get_generic_network (input1 : SET[0:?] OF Inter_stratum_join_relationship; input2 : SET[0:?] OF Intra_stratum_join_relationship; input3 : SET[0:?] OF Stratum_embedded_physical_component_join_relationship; input4 : SET[0:?] OF Unrouted_join_relationship) : Generic_physical_network;
LOCAL
      r1  : SET OF Routed_join_relationship := input1 + input2 + input3;
      u1  : SET OF Unrouted_join_relationship := input4;
      gpn : SET OF Generic_physical_network := [];
    END_LOCAL;
  REPEAT i := 1 TO SIZEOF(r1);
    gpn := gpn + r1[i]\Routed_join_relationship.network_topology;
  END_REPEAT;
  REPEAT i := 1 TO SIZEOF(u1);
    gpn := gpn + u1[i]\Unrouted_join_relationship.network_topology;
  END_REPEAT;
  IF SIZEOF(gpn) <> 1 THEN
    RETURN(?);
  ELSE
    RETURN(gpn[1]);
  END_IF;
END_FUNCTION;
(*

Argument definitions:

input1: the specified Inter_stratum_join_relationship.

input2: the specified Intra_stratum_join_relationship.

input3: the specified Stratum_embedded_physical_component_join_relationship.

input4: the specified Unrouted_join_relationship.

4.6.10 limd_get_lcp_resident_stratum

The limd_get_lcp_resident_stratum function returns the BAG of Design_layer_stratum that are the resident stratum for the input.

NOTE    There may be duplicates in the BAG.

EXPRESS specification:

*)
FUNCTION limd_get_lcp_resident_stratum (input : SET[0:?] OF Layer_connection_point) : BAG[0:?] OF Design_layer_stratum;
LOCAL
   s : BAG OF Design_layer_stratum := [];
  END_LOCAL;
  
    REPEAT i := 1 to SIZEOF(input) BY 1;
       s := s + input[i]\Layer_connection_point.resident_design_layer_stratum;
    END_REPEAT;
       
    RETURN(s);
END_FUNCTION;
(*

Argument definitions:

input: the specified set of Layer_connection_point.

4.6.11 limd_get_sz_cp

The limd_get_sz_cp function returns an integer value.

EXPRESS specification:

*)
FUNCTION limd_get_sz_cp (input : SET[1:?] OF Conductive_interconnect_element_terminal_link) : INTEGER;
LOCAL
    ac : SET OF Conductive_interconnect_element_terminal := [];
  END_LOCAL;
    REPEAT i := 1 TO HIINDEX(input);
      ac := ac +
      input[i]\Conductive_interconnect_element_terminal_link.precedent_point +
      input[i]\Conductive_interconnect_element_terminal_link.subsequent_point;
    END_REPEAT;
    RETURN (SIZEOF(ac));
END_FUNCTION;
(*

Argument definitions:

input: the set of specified Conductive_interconnect_element_terminal_links.

4.7 ARM rule definition

This subclause specifies the ARM rule for this module. The ARM rule and definition is specified below.

4.7.1 limd_unique_stratum

The limd_unique_stratum rule defines that no more than one member of Stratum shall reference a specific combination of Stratum_technology_occurrence and Interconnect_module_stratum_assembly_relationship.

EXPRESS specification:

*)
RULE limd_unique_stratum FOR
(Stratum, Layered_interconnect_module_design_view, Stratum_technology_occurrence);
LOCAL
      s : BAG OF Stratum := [];
      imsar : BAG OF Interconnect_module_stratum_assembly_relationship := [];
      sto : BAG OF Stratum_technology_occurrence := [];
	  pass : BOOLEAN := TRUE;
 END_LOCAL;
 REPEAT i := 1 to SIZEOF(Layered_interconnect_module_design_view) by 1;
    imsar := bag_to_set(USEDIN(Layered_interconnect_module_design_view[i], 
                        'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.INTERCONNECT_MODULE_STRATUM_ASSEMBLY_RELATIONSHIP.ASSEMBLY'));
	REPEAT j := 1 to SIZEOF(imsar) by 1;
	   s := s + imsar[j].component;
    END_REPEAT;
	REPEAT j := 1 to SIZEOF(s) by 1;
	   sto := sto + s[j].definition;
    END_REPEAT;
	
	IF (SIZEOF(sto) < SIZEOF(s))
	THEN
	  pass := FALSE;
	  ESCAPE;
	END_IF;
	
 END_REPEAT;
WHERE
  WR1: pass;
END_RULE;
(*

Argument definitions:

Stratum : the set of all instances of Stratum.

Layered_interconnect_module_design_view : the set of all instances of Layered_interconnect_module_design_view.

Stratum_technology_occurrence : the set of all instances of Stratum_technology_occurrence.

Formal propositions:

WR1: No more than one member of Stratum shall reference a specific combination of Stratum_technology_occurrence and Interconnect_module_stratum_assembly_relationship.



*)
END_SCHEMA;  -- Layered_interconnect_module_design_arm
(*


© ISO 2018 — All rights reserved