Application module: Fabrication technology ISO/TS 10303-1670: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 type definitions
   4.3 ARM entity definitions
   4.4 ARM function definitions
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 Fabrication technology 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 Fabrication_technology_arm schema and identifies the necessary external references.

EXPRESS specification:

*)
SCHEMA Fabrication_technology_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 Constructive_solid_geometry_2d_arm;    --  ISO/TS 10303-1731

USE FROM Geometric_tolerance_arm;    --  ISO/TS 10303-1051

USE FROM Requirement_decomposition_arm;    --  ISO/TS 10303-1740

USE FROM Part_template_arm;    --  ISO/TS 10303-1722

REFERENCE FROM Specification_document_arm    --  ISO/TS 10303-1747
  (get_document_definition);

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

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

Constructive_solid_geometry_2d_arm ISO/TS 10303-1731
Geometric_tolerance_arm ISO/TS 10303-1051
Requirement_decomposition_arm ISO/TS 10303-1740
Part_template_arm ISO/TS 10303-1722
Specification_document_arm ISO/TS 10303-1747
Support_resource_arm ISO/TS 10303-1800

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

4.2 ARM type definitions

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

4.2.1 ft_classification_item   EXPRESS-G

The ft_classification_item type is an extension of the classification_item type. It adds the data type Stratum_technology_occurrence_relationship to the list of alternate data types.

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

EXPRESS specification:

*)
TYPE ft_classification_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON classification_item WITH
   (Stratum_technology_occurrence_relationship);
END_TYPE;
(*

4.2.2 ft_documented_element_select   EXPRESS-G

The ft_documented_element_select type is an extension of the documented_element_select type. It adds the data types Passage_technology, Stratum_technology, and Stratum_surface_technology to the list of alternate data types.

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

EXPRESS specification:

*)
TYPE ft_documented_element_select = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON documented_element_select WITH
   (Passage_technology,
    Stratum_technology,
    Stratum_surface_technology);
END_TYPE;
(*

4.2.3 ft_external_identification_item   EXPRESS-G

The ft_external_identification_item type is an extension of the external_identification_item type. It adds the data types Design_layer_technology, and Documentation_layer_technology to the list of alternate data types.

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

EXPRESS specification:

*)
TYPE ft_external_identification_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON external_identification_item WITH
   (Design_layer_technology,
    Documentation_layer_technology);
END_TYPE;
(*

4.2.4 ft_material_item_select   EXPRESS-G

The ft_material_item_select type is an extension of the material_item_select type. It adds the data types Passage_technology, and Stratum_technology to the list of alternate data types.

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

EXPRESS specification:

*)
TYPE ft_material_item_select = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON material_item_select WITH
   (Passage_technology,
    Stratum_technology);
END_TYPE;
(*

4.2.5 ft_property_assignment_select   EXPRESS-G

The ft_property_assignment_select type is an extension of the property_assignment_select type. It adds the data types Stratum_technology, and Passage_technology to the list of alternate data types.

EXPRESS specification:

*)
TYPE ft_property_assignment_select = SELECT BASED_ON property_assignment_select WITH
   (Stratum_technology,
    Passage_technology);
END_TYPE;
(*

4.2.6 ft_requirement_assignment_item   EXPRESS-G

The ft_requirement_assignment_item type is an extension of the requirement_assignment_item type. It adds the data types Passage_technology, Stratum_technology, Stratum_technology_occurrence, and Stratum_technology_occurrence_relationship to the list of alternate data types.

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

EXPRESS specification:

*)
TYPE ft_requirement_assignment_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON requirement_assignment_item WITH
   (Passage_technology,
    Stratum_technology,
    Stratum_technology_occurrence,
    Stratum_technology_occurrence_relationship);
END_TYPE;
(*

4.2.7 ft_terminus_condition   EXPRESS-G

The ft_terminus_condition lists the functional options that are available at one or both ends of a passage in an interconnect.

NOTE 1   This provides the capability to state whether a passage contacts or penetrates the stratum at the end of the passage.

NOTE 2   The ability is provided in this part of ISO 10303 to state:

  1. passage passes through stratum on each end;
  2. passage passes through stratum on top end but passes through stratum adjacent to stratum on bottom end (i.e. the passage "touches" the stratum on bottom end.);
  3. passage passes through stratum adjacent to stratum on top end (i.e. the passage "touches" the stratum on top end.) and passes through stratum on bottom end;
  4. passage passes through stratum adjacent to top end and passes through stratum adjacent to bottom end(i.e., touches the top and bottom stratum).

NOTE 3   The distinction between "top" and "bottom" is supported in Passage_technology_allocation_to_stack_model and is included herein for completeness.

EXPRESS specification:

*)
TYPE ft_terminus_condition = EXTENSIBLE ENUMERATION OF
   (bilateral_bond,
    bilateral_complete_removal,
    unilateral_bond);
END_TYPE;
(*

Enumerated item definitions:

bilateral_bond: specifies that each end of the passage contacts the stratum identified as being the end of the passage but does not penetrate the stratum;

NOTE 4   In typical industrial usage bilateral_bond forms a plug instead of a passage because both ends of the passage are closed. A plug may be formed when micro-vias are stacked in the same exact location.

bilateral_complete_removal: that each end of the passage passes completely through the stratum identified as being the end of the passage;

unilateral_bond: specifies that one end of the passage contacts the stratum identified as being that end of the passage and the other end of the passage passes completely through the stratum identified as being that end of the passage.

EXAMPLE    A micro-via is an example application of a unilateral_bond.

NOTE 5   Bond in this context specifies sufficient bonding to support desired reliability of the bond formed during manufacture.

NOTE 6   The purpose of bond in this context is to support additive technologies which partially or completely fill the passage and which bond to the target feature in the stratum that is specified as a contact stratum. The target feature in the contact stratum is not explicitly identified as a target feature to reduce model size.

4.2.8 ft_value_select   EXPRESS-G

The ft_value_select type allows for the designation of the data types Value_limit, Value_range, and Numerical_item_with_unit.

EXPRESS specification:

*)
TYPE ft_value_select = SELECT
   (Value_limit,
    Value_range,
    Numerical_item_with_unit);
END_TYPE;
(*

4.2.9 layer_position_type   EXPRESS-G

A layer_position_type lists the types of the layer position in the sequence of layers.

EXPRESS specification:

*)
TYPE layer_position_type = ENUMERATION OF
   (secondary,
    all,
    external,
    primary,
    internal);
END_TYPE;
(*

Enumerated item definitions:

secondary: specifies that the layer position is secondary, a design layer opposite that of the primary layer;

all: specifies that a layer may be in any sequential position;

external: specifies that layer position is either the primary or secondary layer;

primary: specifies that layer position is the z-axis zero position in the vertical sequence of layers;

internal: specifies that layer position is not one of primary or secondary;

4.2.10 predefined_design_layer_purpose   EXPRESS-G

A predefined_design_layer_purpose lists the purposes of the layer, in the context of the types of signals intended to be implemented.

EXPRESS specification:

*)
TYPE predefined_design_layer_purpose = ENUMERATION OF
   (other_signal,
    lands_only,
    power_or_ground,
    embedded_passive_capacitor_dielectric,
    embedded_passive_resistor);
END_TYPE;
(*

Enumerated item definitions:

other_signal: specifies that layer is used for a signal other than power or ground;

lands_only: specifies that layer is used for lands only;

power_or_ground: specifies that layer is used for power or ground signals;

embedded_passive_capacitor_dielectric: specifies that layer is used for an embedded passive capacitor dielectric;

embedded_passive_resistor: specifies that layer is used for an embedded passive resistor conductor;

4.2.11 predefined_documentation_layer_purpose   EXPRESS-G

A predefined_documentation_layer_purpose lists the predefined purpose of the documentation layer.

EXPRESS specification:

*)
TYPE predefined_documentation_layer_purpose = ENUMERATION OF
   (solderdam,
    soldermask,
    solderpaste,
    silkscreen,
    generic_layer,
    glue,
    gluemask,
    pastemask,
    finish_coating,
    coverlay);
END_TYPE;
(*

Enumerated item definitions:

solderdam: specifies that documentation layer is solderdam;

soldermask: specifies that documentation layer is soldermask;

solderpaste: specifies that documentation layer is solderpaste;

NOTE 1   In the context of this part of ISO 10303, specifies that solder paste applied during an assembly manufacturing process is deposited only where there are positive regions in the model.

silkscreen: specifies that documentation layer is silkscreen;

NOTE 2   An application of silkscreen requires a rigid surface but this part of ISO 10303 does not enforce that level of process modeling.

generic_layer: specifies that documentation layer is generic layer;

NOTE 3   A generic_layer does not have a predefined purpose.

EXAMPLE    The generic dielectric known to exist between design layers is assigned a purpose of generic_layer.

glue: specifies that documentation layer is glue;

gluemask: specifies that documentation layer is gluemask;

NOTE 4   The gluemask layer is usually a negative image and requires correct interpretation by post-processors for mass property calculations of the PCA or PWA.

pastemask: specifies that documentation layer is pastemask;

NOTE 5   The pastemask layer is usually a negative image and requires correct interpretation by post-processors for mass property calculations of the PCA or PWA.

finish_coating: specifies that documentation layer is finish coating.

coverlay: specifies that documentation layer is coverlay;

NOTE 6   Coverlay is typically applied to flexible PCBs.

4.2.12 stiffness_class   EXPRESS-G

A stiffness_class specifies that the material is able to flow during the manufacturing process. The finished state is a solid.

NOTE    These predefined types apply to properties of materials used in PCB/PWB and PWA/PWB domain. They are primarily used to distinguish between stages of materials that exist during the fabrication and assembly manufacturing processes and not the stages of material as delivered to a customer as part of an assembly or interconnect.

EXPRESS specification:

*)
TYPE stiffness_class = ENUMERATION OF
   (fluid_like_with_constant_thickness,
    fluid_like_with_varying_thickness,
    stiff_laminate);
END_TYPE;
(*

Enumerated item definitions:

fluid_like_with_constant_thickness: specifies that the type is B-stage or equivalent in rigidity and fluid flow with constant thickness properties under manufacturing conditions;

fluid_like_with_varying_thickness: specifies that the type is B-stage or equivalent in rigidity and fluid flow with varying thickness properties under manufacturing conditions;

stiff_laminate: specifies that the laminate type is solid.

4.2.13 up_or_down   EXPRESS-G

The up_or_down lists the dependencies between Stratum_technology_occurrence members.

EXPRESS specification:

*)
TYPE up_or_down = ENUMERATION OF
   (independent,
    precedent,
    subsequent);
END_TYPE;
(*

Enumerated item definitions:

independent: indicates that there is no dependency between Stratum_technology_occurrence members;

precedent: indicates that the subsequent Stratum_technology_occurrence is based on the precedent Stratum_technology_occurrence.

subsequent: indicates that the precedent Stratum_technology_occurrence is based on the subsequent Stratum_technology_occurrence.

4.3 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.3.1 Allocated_passage_minimum_annular_ring   EXPRESS-GMapping table

An Allocated_passage_minimum_annular_ring is a type of Characterizable_object included to support specification of annular ring properties for the combined technology that results from applying a Passage_technology to a stackup model. When associated_stratum_technology_occurrence is not provided, the interpretation shall be that the Allocated_passage_minimum_annular_ring applies to the entire design model.

EXPRESS specification:

*)
ENTITY Allocated_passage_minimum_annular_ring
  SUBTYPE OF (Characterizable_object);
  supported_external_minimum_annular_ring : OPTIONAL Length_data_element;
  supported_internal_minimum_annular_ring : OPTIONAL Length_data_element;
  unsupported_minimum_annular_ring : OPTIONAL Length_data_element;
  minimum_fabrication_allowance : OPTIONAL Length_data_element;
  associated_passage_allocation : SET[1:?] OF Passage_technology_allocation_to_stack_model;
  associated_stratum_technology_occurrence : OPTIONAL Stratum_technology_occurrence;
DERIVE
  associated_model : Stratum_stack_model := associated_passage_allocation[1]\Stratum_sub_stack.associated_stackup;
WHERE
  WR1: EXISTS(supported_external_minimum_annular_ring) OR EXISTS(supported_internal_minimum_annular_ring) OR EXISTS(unsupported_minimum_annular_ring) OR EXISTS(minimum_fabrication_allowance);
  WR2: NOT EXISTS(associated_stratum_technology_occurrence) OR (associated_stratum_technology_occurrence IN associated_model\Stratum_stack_model.composing_occurrence);
  WR3: NOT EXISTS(supported_external_minimum_annular_ring) OR (SIZEOF(QUERY(ptatsm <* associated_passage_allocation | NOT(ptatsm\Passage_technology_allocation_to_stack_model.allocated_technology\Passage_technology.plated_passage) )) = 0);
  WR4: NOT EXISTS(supported_internal_minimum_annular_ring) OR (SIZEOF(QUERY(ptatsm <* associated_passage_allocation | NOT(ptatsm\Passage_technology_allocation_to_stack_model.allocated_technology\Passage_technology.plated_passage) )) = 0);
  WR5: NOT (EXISTS(unsupported_minimum_annular_ring) AND (SIZEOF(QUERY(ptatsm <* associated_passage_allocation | NOT(ptatsm\Passage_technology_allocation_to_stack_model.allocated_technology\Passage_technology.plated_passage) )) = 0));
  WR6: SIZEOF(QUERY(ptatsm <* associated_passage_allocation | NOT(associated_model = ptatsm\Stratum_sub_stack.associated_stackup) )) =0;
  WR7: NOT (EXISTS(associated_stratum_technology_occurrence) AND EXISTS(supported_internal_minimum_annular_ring));
END_ENTITY;
(*

Attribute definitions:

supported_external_minimum_annular_ring: specifies a role of the Length_data_element for the Allocated_passage_minimum_annular_ring. The value is the minimum remaining width of the annular ring after fabrication for the case that there is plating and that the Land is on an external layer. The value of this attribute need not be specified.

supported_internal_minimum_annular_ring: specifies a role of the Length_data_element for the Allocated_passage_minimum_annular_ring. The value is the minimum remaining width of the annular ring after fabrication for the case that there is plating and that the Land is on an internal layer. The value of this attribute need not be specified.

unsupported_minimum_annular_ring: specifies a role of the Length_data_element for the Allocated_passage_minimum_annular_ring. The value is the minimum remaining width of the annular ring after fabrication for the case that there will not be a connection to the Land. The value of this attribute need not be specified.

minimum_fabrication_allowance: specifies a role of the Length_data_element for the Allocated_passage_minimum_annular_ring. The value is the minimum allowance for fabrication registration errors. The value of this attribute need not be specified.

associated_passage_allocation: specifies a role of the Passage_technology_allocation_to_stack_model for the Allocated_passage_minimum_annular_ring. The Passage_technology_allocation_to_stack_model specifies the combination of technologies against which the annular ring requirement is applied. There may be more than one Passage_technology_allocation_to_stack_model provided. In the case that more than one Passage_technology_allocation_to_stack_model is provided, all members of Passage_technology_allocation_to_stack_model are for the same stackup model.

associated_stratum_technology_occurrence: specifies a role of the Stratum_technology_occurrence for the Allocated_passage_minimum_annular_ring. The Stratum_technology_occurrence specifies the specific layer against which the annular ring requirement is placed. The value of this attribute need not be specified.

associated_model: specifies the role of a Stratum_stack_model for the Allocated_passage_minimum_annular_ring. The associated_model is the stackup model for which the Allocated_passage_minimum_annular_ring provides specialized fabrication tolerances.

Formal propositions:

WR1: There shall exist a supported_external_minimum_annular_ring or a supported_internal_minimum_annular_ring or an unsupported_minimum_annular_ring or a minimum_fabrication_allowance.

WR2: The associated_stratum_technology_occurrence helps compose the stackup model indirectly specified by the associated_passage_allocation.

WR3: If supported_external_minimum_annular_ring is provided, the associated Passage_technology shall be plated.

WR4: If supported_internal_minimum_annular_ring is provided, the associated Passage_technology shall be plated.

WR5: The unsupported_minimum_annular_ring shall not be provided when the associated Passage_technology is plated.

WR6: Each member of associated_passage_allocation shall reference the associated_model.

WR7: Either associated_stratum_technology_occurrence or supported_internal_minimum_annular_ring may be provided but they shall not both be provided.

4.3.2 Copy_stratum_technology_occurrence_relationship   EXPRESS-GMapping table

A Copy_stratum_technology_occurrence_relationship is a type of Derived_stratum_technology_occurrence_relationship, stating that the geometry of the primary Stratum is copied to the geometry of the secondary Stratum. In the case that a Stratum_technology_occurrence is referenced by several Copy_stratum_technology_occurrence_relationship as secondary, the resulting geometry is the result of applying the regularized Boolean union operator to the geometries of the primary Stratum.

EXPRESS specification:

*)
ENTITY Copy_stratum_technology_occurrence_relationship
  SUBTYPE OF (Derived_stratum_technology_occurrence_relationship);
END_ENTITY;
(*

4.3.3 Default_component_termination_passage_definition   EXPRESS-GMapping table

A Default_component_termination_passage_definition is a type of Passage_technology that defines a default passage based on characteristics of the associated Part_terminal.

EXPRESS specification:

*)
ENTITY Default_component_termination_passage_definition
  SUBTYPE OF (Passage_technology);
  allowed_component_terminal_extent : Length_tolerance_characteristic;
  SELF\Passage_technology.as_finished_deposition_thickness : Length_tolerance_characteristic;
  SELF\Passage_technology.as_finished_passage_extent : ft_value_select;
INVERSE
  SELF\Passage_technology.deposition_material : SET[1:1] OF Passage_deposition_material_identification FOR items;
WHERE
  WR1: 'CONDUCTIVITY_MATERIAL_ASPECTS_ARM.'+ 'MATERIAL_IDENTIFICATION_WITH_CONDUCTIVITY_CLASSIFICATION' IN TYPEOF (deposition_material[1]);
END_ENTITY;
(*

Attribute definitions:

allowed_component_terminal_extent: specifies the role of the Length_tolerance_characteristic for the Default_component_termination_passage_definition.

as_finished_deposition_thickness: specifies the role of the Length_tolerance_characteristic for the Default_component_termination_passage_definition.

as_finished_passage_extent: specifies the role of the ft_value_select for the Default_component_termination_passage_definition.

deposition_material: specifies an inverse relationship that specifies that the existence of the Default_component_termination_passage_definition is dependent on the existence of the Passage_deposition_material_identification that specifies the Default_component_termination_passage_definition as its items. There shall be exactly one Passage_deposition_material_identification for a particular Default_component_termination_passage_definition.

Formal propositions:

WR1: the deposition_material shall be of type Material_identification_with_conductivity_classification.

NOTE    The supertype Passage_technology specifies that the deposition material shall be conductive. An application interface shall specify the domain, usually electrical.

4.3.4 Default_tapered_blind_via_definition   EXPRESS-GMapping table

A Default_tapered_blind_via_definition is a type of Default_via_definition that supports the definition of vias that have a different diameter on one end than on the other. The passage diametric extent decreases as a measurement point moves toward the interior of the interconnect.

NOTE    This Application Object is intended to support micro-vias where the source system has the knowledge of the change in diameter.

EXPRESS specification:

*)
ENTITY Default_tapered_blind_via_definition
  SUBTYPE OF (Default_via_definition);
  as_finished_interior_passage_extent : Length_tolerance_characteristic;
WHERE
  WR1: less(as_finished_interior_passage_extent, SELF\default_via_definition.as_finished_passage_extent);
END_ENTITY;
(*

Attribute definitions:

as_finished_interior_passage_extent: specifies the role of the Length_tolerance_characteristic for the Default_tapered_blind_via_definition. Interior refers to the location of the smaller diameter of the passage.

Formal propositions:

WR1: The as_finished_interior_passage_extent shall be less than as_finished_passage_extent.

4.3.5 Default_unsupported_passage_definition   EXPRESS-GMapping table

A Default_unsupported_passage_definition is a type of Passage_technology where the passage is unsupported by metallization.

EXPRESS specification:

*)
ENTITY Default_unsupported_passage_definition
  SUBTYPE OF (Passage_technology);
  SELF\Passage_technology.as_finished_passage_extent : ft_value_select;
END_ENTITY;
(*

Attribute definitions:

as_finished_passage_extent: specifies a role of the ft_value_select for the Default_unsupported_passage_definition.

4.3.6 Default_via_definition   EXPRESS-GMapping table

A Default_via_definition is a type of Passage_technology that defines the default shape of the Via. Mandatory properties are identified.

EXPRESS specification:

*)
ENTITY Default_via_definition
  SUBTYPE OF (Passage_technology);
  SELF\Passage_technology.as_finished_deposition_thickness : Length_tolerance_characteristic;
  SELF\Passage_technology.as_finished_passage_extent : ft_value_select;
INVERSE
  SELF\Passage_technology.deposition_material : SET[1:1] OF Passage_deposition_material_identification FOR items;
WHERE
  WR1: 'CONDUCTIVITY_MATERIAL_ASPECTS_ARM.'+ 'MATERIAL_IDENTIFICATION_WITH_CONDUCTIVITY_CLASSIFICATION' IN TYPEOF (deposition_material[1]);
END_ENTITY;
(*

Attribute definitions:

as_finished_deposition_thickness: an attribute inherited from the Passage_technology shall be redeclared as the Length_tolerance_characteristic for the Default_via_definition.

as_finished_passage_extent: an attribute inherited from the Passage_technology shall be redeclared as the ft_value_select for the Default_via_definition.

deposition_material: an inverse relationship that specifies that the existence of the Default_via_definition is dependent on the existence of the Passage_deposition_material_identification that specifies the Default_via_definition as its items. There shall exist exactly one Passage_deposition_material_identification for the Default_via_definition.

Formal propositions:

WR1: The deposition_material shall be of type Material_identification_with_conductivity_classification.

NOTE    The supertype Passage_technology specifies that the deposition material shall be conductive. An application interface shall specify the domain, usually electrical.

4.3.7 Derived_stratum_technology_occurrence_relationship   EXPRESS-GMapping table

A Derived_stratum_technology_occurrence_relationship is a type of Stratum_technology_occurrence_relationship for the purpose of stating that the geometry of one Stratum is derived from the geometry of another Stratum. The geometry of a Stratum that references a Stratum_technology_occurrence that is itself referenced by a Derived_stratum_technology_occurrence_relationship as a secondary Stratum_technology_occurrence is the derived geometry. A Stratum whose geometry is derived shall not have any explicit Stratum_feature. A Stratum whose geometry is derived shall not have any explicit geometry. A Derived_stratum_technology_occurrence_relationship is either a Copy_stratum_technology_occurrence_relationship or an Inverse_copy_stratum_technology_occurrence_relationship. A Stratum_technology_occurrence shall not be referenced by more than one type of Derived_stratum_technology_occurrence_relationship as a secondary Stratum_technology_occurrence .

NOTE    Primary and secondary are informal role names. The formal names are sto_1 and sto_2, respectively, and are inherited from Stratum_technology_occurrence_relationship.

EXPRESS specification:

*)
ENTITY Derived_stratum_technology_occurrence_relationship
  ABSTRACT SUPERTYPE OF (ONEOF (Copy_stratum_technology_occurrence_relationship,
                                Inverse_copy_stratum_technology_occurrence_relationship))
  SUBTYPE OF (Stratum_technology_occurrence_relationship);
END_ENTITY;
(*

4.3.8 Design_layer_technology   EXPRESS-GMapping table

A Design_layer_technology is a type of Stratum_technology. The Design_layer_technology is a technology specification tailored for those materials intended to be used to implement the direct connectivity as described in a design. The same Design_layer_technology may be used in multiple designs for multiple products, since there is no dependence of the Design_layer_technology on the design referencing it. A Design_layer_technology shall not be used for printed components as defined by Printed_part_template where conductivity class other than 'conductive' is required because the conductivity class of a Design_layer_technology is required to be 'conductive'.

EXAMPLE 1   An example where an application of Design_layer_technology is inappropriate is for paste resistors on a layer where the paste resistors are not also interconnected on that same layer since the conductivity class for a paste resistor is 'resistive'. The terminals of the paste resistors in this example would be bonded to features of a design layer during fabrication in order to realize interconnect between each other. A via may be dropped onto a paste resistor if the realization process supports it.

EXAMPLE 2   An example where an application of Design_layer_technology is required is for printed coils where the coil is fabricated on a signal layer.

EXPRESS specification:

*)
ENTITY Design_layer_technology
  SUBTYPE OF (Stratum_technology);
  design_layer_purpose : OPTIONAL predefined_design_layer_purpose;
INVERSE
  externally_defined_design_layer_purpose : SET[0:1] OF External_source_identification FOR item;
WHERE
  WR1: (SIZEOF([SELF\Stratum_technology.stratum_material[1]\Material_identification_with_conductivity_classification.electrical_conductivity_classification, SELF\Stratum_technology.stratum_material[1]\Material_identification_with_conductivity_classification.thermal_conductivity_classification] * ['conductive']) >= 1) OR (SELF\Stratum_technology.stratum_material[1]\Material_identification_with_conductivity_classification.magnetic_permeability_classification IN ['highly permeable']) OR (SELF\Stratum_technology.stratum_material[1]\Material_identification_with_conductivity_classification.optical_insertion_loss_classification IN ['vacuum', 'very low loss', 'low loss']);
  WR2: (EXISTS (design_layer_purpose)) XOR ((SIZEOF(externally_defined_design_layer_purpose)) = 1);
END_ENTITY;
(*

Attribute definitions:

design_layer_purpose: specifies the predefined_design_layer_purpose for the Design_layer_technology. The design_layer_purpose specifies one of the lands_only, other_signal, or power_or_ground purpose of the Design_layer_stratum for the Design_layer_technology. The value of this attribute need not be specified.

externally_defined_design_layer_purpose: specifies an inverse relationship that specifies that the existence of the Design_layer_technology is dependent on the existence of the External_source_identification that specifies the Design_layer_technology as its item. There shall be no more than one External_source_identification for the Design_layer_technology.

Formal propositions:

WR1: The stratum_material inherited from Stratum_technology shall be at least one of: thermally, electrically, optically or magnetically conductive.

WR2: The design_layer_purpose or externally_defined_design_layer_purpose shall exist but not both together.

4.3.9 Design_stack_model   EXPRESS-GMapping table

A Design_stack_model is a type of Stratum_stack_model that is included in a design to specify the set of laminate stackups used in the design of an interconnect. A Design_stack_model is composed of one or more Stratum_sub_stack each of which may specify local stackup requirements.

EXPRESS specification:

*)
ENTITY Design_stack_model
  SUBTYPE OF (Stratum_stack_model);
  model_thickness : OPTIONAL Length_tolerance_characteristic;
INVERSE
  sub_stack : SET[1:?] OF Stratum_sub_stack FOR associated_stackup;
END_ENTITY;
(*

Attribute definitions:

model_thickness: specifies a role of the Length_tolerance_characteristic for the Design_stack_model. The value of this atribute need not be specified.

sub_stack: specifies an inverse relationship that specifies that the existence of the Design_stack_model is dependent on the existence of the Stratum_sub_stack that specifies the Design_stack_model as its associated_stackup. There shall exist one and more Stratum_sub_stacks for a Design_stack_model.

4.3.10 Documentation_layer_technology   EXPRESS-GMapping table

A Documentation_layer_technology is a type of Stratum_technology that may have patterns applied and whose purpose is not for directly implementing point to point connectivity as in the Design_layer_technology. A Documentation_layer_technology shall be used for printed components as defined by Printed_part_template where conductivity class other than 'conductive' is required because the conductivity class of a Documentation_layer_technology may be something other than 'conductive'. The externally_defined_documentation_layer_purpose provides a facility to specify the detailed nature of the application. A standard external to this part of ISO 10303 or industrial exchange agreements may formalize the externally_defined_documentation_layer_purpose.

EXAMPLE 1   An example where an application of Documentation_layer_technology is appropriate is for paste resistors with a conductivity class of 'resistive'.

EXAMPLE 2   An example where an application of Documentation_layer_technology is appropriate is for paste capacitors with a conductivity class of 'non conductive'.

EXPRESS specification:

*)
ENTITY Documentation_layer_technology
  SUBTYPE OF (Stratum_technology);
  pre_defined_documentation_layer_purpose : OPTIONAL predefined_documentation_layer_purpose;
INVERSE
  externally_defined_documentation_layer_purpose : SET[0:1] OF External_source_identification FOR item;
WHERE
  WR1: (EXISTS (pre_defined_documentation_layer_purpose)) XOR ((SIZEOF(externally_defined_documentation_layer_purpose)) = 1);
END_ENTITY;
(*

Attribute definitions:

pre_defined_documentation_layer_purpose: specifies the predefined_documentation_layer_purpose to describe the purpose defined in this part of ISO 10303 for the Documentation_layer_technology. The value of this attribute need not be specified.

externally_defined_documentation_layer_purpose: specifies an inverse relationship that specifies that the existence of the Documentation_layer_technology is dependent on the existence of the External_source_identification that specifies the Documentation_layer_technology as its item. There shall be no more than one External_source_identification for the Documentation_layer_technology.

Formal propositions:

WR1: Exactly one of pre_defined_documentation_layer_purpose, externally_defined_documentation_layer_purpose shall be provided.

4.3.11 Equivalent_stackup_model_definition   EXPRESS-GMapping table

An Equivalent_stackup_model_definition is a type of Product_view_definition and a type of View_definition_relationship that provides support for explicitly stating that a more detailed stackup model is the topological equivalent of a more generic stackup model.

NOTE    A more detailed model may be desired for analysis purposes or to show how a model based requirement is implemented.

EXPRESS specification:

*)
ENTITY Equivalent_stackup_model_definition
  SUBTYPE OF (Product_view_definition, View_definition_relationship);
  SELF\View_definition_relationship.relating_view RENAMED primary_stackup_model : Stratum_stack_model;
  SELF\View_definition_relationship.related_view RENAMED equivalent_stackup_model : Stratum_stack_model;
  equivalent_sub_stacks : SET[1:?] OF Equivalent_sub_stack_definition;
WHERE
  WR1: primary_stackup_model :<>: equivalent_stackup_model;
  WR2: SIZEOF(QUERY( ess <* equivalent_sub_stacks | NOT (ess\Equivalent_sub_stack_definition.equivalent_stack\Stratum_sub_stack.associated_stackup :=: equivalent_stackup_model) )) = 0;
  WR3: acyclic_equivalent_stackup_model_definition(SELF, [equivalent_stackup_model], 'FABRICATION_TECHNOLOGY_ARM.EQUIVALENT_STACKUP_MODEL_DEFINITION');
END_ENTITY;
(*

Attribute definitions:

primary_stackup_model: specifies a role of the Stratum_stack_model for the Equivalent_stackup_model_definition.

equivalent_stackup_model: specifies a role of the Stratum_stack_model for the Equivalent_stackup_model_definition.

equivalent_sub_stacks: specifies a role of the Equivalent_sub_stack_definition for the Equivalent_stackup_model_definition. There shall exist one or more Equivalent_sub_stack_definitions for the Equivalent_stackup_model_definition.

Formal propositions:

WR1: The primary_stackup_model shall not be the equivalent_stackup_model.

WR2: Each member of equivalent_sub_stacks shall specify the equivalent_stackup_model as the associated_stackup for the equivalent_stack of that member of equivalent_sub_stacks.

WR3: The graph of instances of the Application Object Equivalent_stackup_model_definition shall not contain a cycle.

4.3.12 Equivalent_sub_stack_definition   EXPRESS-GMapping table

An Equivalent_sub_stack_definition is a type of Product_view_definition that specifies the equivalence of a subset of a more generic stackup to a subset of a more detailed stackup.

EXPRESS specification:

*)
ENTITY Equivalent_sub_stack_definition
  SUBTYPE OF (Product_view_definition);
  equivalent_stack : Local_linear_stack;
  primary_sto : Stratum_technology_occurrence;
  primary_sto_link : Stratum_technology_occurrence_link;
WHERE
  WR1: primary_sto IN [primary_sto_link\Stratum_technology_occurrence_relationship.sto_1, primary_sto_link\Stratum_technology_occurrence_relationship.sto_2];
  WR2: equivalent_stack\Stratum_sub_stack.associated_stackup :<>: primary_sto_link\Stratum_technology_occurrence_relationship.scope;
END_ENTITY;
(*

Attribute definitions:

equivalent_stack: specifies the role of the Local_linear_stack for the Equivalent_sub_stack_definition. The equivalent_stack is the more detailed stackup.

primary_sto: specifies the role of the Stratum_technology_occurrence for the Equivalent_sub_stack_definition. The primary_sto is a reference in the equivalence relation.

primary_sto_link: specifies the role of the Stratum_technology_occurrence_link for the Equivalent_sub_stack_definition. The primary_sto_link is the range of stackup in the more generic stackup.

Formal propositions:

WR1: The primary_sto shall be referenced by the primary_sto_link.

WR2: The stackup referenced by the equivalent_stack shall not be the stackup associated with the primary_sto_link.

4.3.13 Footprint_library_stratum_technology   EXPRESS-GMapping table

A Footprint_library_stratum_technology is a type of Stratum_technology for use where generic footprint patterns are defined and where the stratum_thickness is not applicable.

EXPRESS specification:

*)
ENTITY Footprint_library_stratum_technology
  SUBTYPE OF (Stratum_technology);
WHERE
  WR1: NOT EXISTS(stratum_thickness);
END_ENTITY;
(*

Formal propositions:

WR1: The stratum_thickness shall not be populated.

4.3.14 Impedance_measurement_setup_requirement   EXPRESS-GMapping table

An Impedance_measurement_setup_requirement is a type of Predefined_requirement_view_definition that specifies the structural relationships necessary to support a functional definition of an impedance measurement. The specification is simplified to just specify key instance data and is not intended to be a complete measurement standard.

EXPRESS specification:

*)
ENTITY Impedance_measurement_setup_requirement
  SUBTYPE OF (Predefined_requirement_view_definition);
  characterized_stackup : Stratum_sub_stack;
  measurement_stratum_1 : Stratum_technology_occurrence;
  measurement_stratum_2 : Stratum_technology_occurrence;
  reference_stratum : SET[1:2] OF Stratum_technology_occurrence;
WHERE
  WR1: SELF\Product_view_definition.initial_context.life_cycle_stage = 'test';
  WR2: NOT EXISTS(SELF\Product_view_definition.id);
  WR3: SIZEOF([measurement_stratum_1, measurement_stratum_2] * reference_stratum) = 0;
END_ENTITY;
(*

Attribute definitions:

characterized_stackup: specifies a role of the Stratum_sub_stack for the Impedance_measurement_setup_requirement. The characterized_stackup is the stackup for which the reference information is provided.

measurement_stratum_1: specifies a role of the Stratum_technology_occurrence for the Impedance_measurement_setup_requirement. The measurement_stratum_1 is the Stratum that will be evaluated with the measurement.

measurement_stratum_2: specifies a role of the Stratum_technology_occurrence for the Impedance_measurement_setup_requirement. The measurement_stratum_2 is the Stratum that will be evaluated with the measurement.

reference_stratum: specifies a role of the Stratum_technology_occurrence for the Impedance_measurement_setup_requirement. There shall exist one or two Stratum_technology_occurrences for the Impedance_measurement_setup_requirement.

Formal propositions:

WR1: The life_cycle_stage shall be 'test'.

WR2: The id shall not be populated.

WR3: The measurement_stratum_1 and measurement_stratum_2 shall be disjoint from the reference_stratum.

4.3.15 Impedance_requirement   EXPRESS-GMapping table

An Impedance_requirement is a type of Predefined_requirement_view_definition provided to support functional performance specification of interconnect implementations in support of high speed design. An Impedance_requirement supports specification of performance requirements for several classes of transmission line implementations.

NOTE    The intent of this Application Object is to support characterization of bulk measurement. This part of ISO 10303 supports specification of single ended or differential characterization in the case that the differential pair is on disjoint strata. Support for measurement of co-planar waveguide differential properties is not supported by this Application Object since detailed design data required (port locations) is not available in this part of ISO 10303.

EXPRESS specification:

*)
ENTITY Impedance_requirement
  SUBTYPE OF (Predefined_requirement_view_definition);
  frequency_range : Value_range;
  impedance_value : Tolerance_characteristic;
  test_bench : Impedance_measurement_setup_requirement;
  test_method : Test_specification;
WHERE
  WR1: SELF\Product_view_definition.initial_context.life_cycle_stage = 'test';
  WR2: NOT EXISTS(SELF\Product_view_definition.id);
END_ENTITY;
(*

Attribute definitions:

frequency_range: specifies the role of the Value_range for the Impedance_requirement. The frequency_range indicates the range over which the measurement results shall be valid.

impedance_value: specifies the role of the Tolerance_characteristic for the Impedance_requirement. The impedance_value specifies the domain over which the impedance may vary and be within specification.

test_bench: specifies the role of the Impedance_measurement_setup_requirement for the Impedance_requirement. The test_bench specifies the measurement and reference strata for the impedance measurement.

test_method: specifies the role of the Test_specification for the Impedance_requirement. The test_method specifies the procedure to be followed in the measurement process.

Formal propositions:

WR1: The Product_view_definition. initial_context. life_cycle_stage shall be 'test'.

WR2: The id shall not be populated.

4.3.16 Inverse_copy_stratum_technology_occurrence_relationship   EXPRESS-GMapping table

An Inverse_copy_stratum_technology_occurrence_relationship is a type of Derived_stratum_technology_occurrence_relationship, stating that the geometry of one Stratum is an inverse copy of the geometry of another Stratum. In the case that a Stratum is specified to be inverse copies of several other members of Stratum, the derived geometry is the result of applying the regularized Boolean intersection operator to the geometries of the other strata.

EXPRESS specification:

*)
ENTITY Inverse_copy_stratum_technology_occurrence_relationship
  SUBTYPE OF (Derived_stratum_technology_occurrence_relationship);
END_ENTITY;
(*

4.3.17 Local_linear_stack   EXPRESS-GMapping table

A Local_linear_stack is a type of Stratum_sub_stack that is a locally complete vertical extent of the referenced Stratum_stack_model.

NOTE 1   A collection of this Application Object can be used to describe the locally different stack models of a combined rigid-flex printed circuit board.

EXAMPLE    A rigid-flex PCB where the rigid left side has 8 layers, the middle part has 3 independent stacked flex pcbs with 2 layers each (not glued together) and the rigid right side has 10 layers.

EXPRESS specification:

*)
ENTITY Local_linear_stack
  SUBTYPE OF (Stratum_sub_stack);
  SELF\Stratum_sub_stack.stratum_technology_sequence : SET[1:?] OF Stratum_technology_occurrence_link;
WHERE
  WR1: SIZEOF(get_stack(stratum_technology_sequence)) = (SIZEOF(stratum_technology_sequence) + 1);
  WR2: sts_vertex_degree_check(stratum_technology_sequence, 2);
END_ENTITY;
(*

Attribute definitions:

stratum_technology_sequence: an attribute inherited from the Stratum_sub_stack shall be redeclared as the Stratum_technology_occurrence_link for the Local_linear_stack. There shall exist one or more Stratum_technology_occurrence_link for the Local_linear_stack.

Formal propositions:

WR1: The number of Stratum_technology_occurrence in the stack shall be one greater than the number of stratum_technology_sequence.

WR2: There shall be no more than two Stratum_technology_occurrence_link referencing any one member of Stratum_technology_occurrence that are referenced by the stratum_technology_sequence.

NOTE 2   Rules 1, 2 together ensure that the stratum_technology_sequence form a directed list, and that there are no cycles in the sequence and that there are no holes in the sequence.

4.3.18 Passage_deposition_material_identification   EXPRESS-GMapping table

A Passage_deposition_material_identification is a type of Material_identification used to identify material deposited on the walls or lower or upper terminus of a passage.

EXPRESS specification:

*)
ENTITY Passage_deposition_material_identification
  SUBTYPE OF (Material_identification);
  SELF\Material_identification.items : SET[1:?] OF Passage_technology;
END_ENTITY;
(*

Attribute definitions:

items: an attribute inherited from the Material_identification shall be redeclared as the Passage_technology for the Passage_deposition_material_identification. There shall exist one or more Passage_technologies for the Passage_deposition_material_identification.

4.3.19 Passage_filling_material_identification   EXPRESS-GMapping table

A Passage_filling_material_identification is a type of Material_identification used to identify material that fills a passage.

EXPRESS specification:

*)
ENTITY Passage_filling_material_identification
  SUBTYPE OF (Material_identification);
  SELF\Material_identification.items : SET[1:?] OF Passage_technology;
END_ENTITY;
(*

Attribute definitions:

items: an attribute inherited from the Material_identification shall be redeclared as the Passage_technology for the Passage_filling_material_identification. There shall exist one or more Passage_technologies for the Passage_filling_material_identification.

4.3.20 Passage_technology   EXPRESS-GMapping table

A Passage_technology is a type of Characterizable_object. A Passage_technology is a description that includes material stackup parametric data related to edges and passages included in the design of layered interconnect substrates.

A Passage_technology is a Default_component_termination_passage_definition, a Default_unsupported_passage_definition, or a Default_via_definition.

A Passage_technology specifies material properties and parametric data associated with a specific manufacturing process. Different options include data for cylindrical holes, directed holes, odd-shaped holes and edge treatment of substrates. Material options include specification of plating material and fill material.

The interpretation of plating and fill material is that if both are provided, the process drills, then plates, then fills. If only fill material is provided, the interpretation shall be that the process drills then fills. The interpretation of minimum_finished_size in the case of plating and fill is that minimum_finished_size applies to the plating if the minimum_finished_size is provided. Fill shall be interpreted as having no discernible passage in the delivered product. The minimum_finished_size applies to the use case where the passage is a drilled hole. The minimum_finished_feature_size applies to all cases where the passage is an edge that is not fabricated by drilling.

NOTE 1   Fill and plating are process oriented properties of the model and the sequence of application is not explicitly modeled.

NOTE 2   This part of ISO 10303 models the results of the actual plating process in two major components: passage technology and stratum technology. Sufficient detail is provided to allow applications to relate the results in the vertical domain of the passage with the horizontal domain of the stratum but there is no explicitly modeled dependency from stratum technology to the plating material in a passage technology.

EXPRESS specification:

*)
ENTITY Passage_technology
  SUPERTYPE OF (ONEOF (Default_via_definition,
                       Default_component_termination_passage_definition,
                       Default_unsupported_passage_definition))
  SUBTYPE OF (Characterizable_object);
  as_finished_deposition_thickness : OPTIONAL Length_tolerance_characteristic;
  as_finished_passage_extent : OPTIONAL ft_value_select;
  maximum_aspect_ratio : OPTIONAL REAL;
  minimum_finished_size : OPTIONAL Length_data_element;
  plated_passage : BOOLEAN;
  passage_terminus_condition : OPTIONAL ft_terminus_condition;
  minimum_fabrication_allowance : OPTIONAL Length_data_element;
  minimum_finished_feature_size : OPTIONAL Length_data_element;
  supported_external_minimum_annular_ring : OPTIONAL Length_data_element;
  supported_internal_minimum_annular_ring : OPTIONAL Length_data_element;
  unsupported_minimum_annular_ring : OPTIONAL Length_data_element;
DERIVE
  specification : SET[0:1] OF Document_definition := get_document_definition(SELF, 'specification', 'SPECIFICATION_DOCUMENT_ARM.PROCESS_SPECIFICATION');
INVERSE
  deposition_material : SET[0:1] OF Passage_deposition_material_identification FOR items;
  fill_material : SET[0:1] OF Passage_filling_material_identification FOR items;
UNIQUE
  UR1: SELF\Characterizable_object.name;
WHERE
  WR1: NOT (SIZEOF(deposition_material) = 1) OR ('CONDUCTIVITY_MATERIAL_ASPECTS_ARM.'+ 'MATERIAL_IDENTIFICATION_WITH_CONDUCTIVITY_CLASSIFICATION' IN TYPEOF (deposition_material[1]));
  WR2: NOT plated_passage OR (SIZEOF(deposition_material) = 1);
  WR3: NOT EXISTS(as_finished_deposition_thickness) OR (SIZEOF(deposition_material) = 1);
  WR4: NOT plated_passage OR (SIZEOF([deposition_material[1]\Material_identification_with_conductivity_classification.electrical_conductivity_classification, deposition_material[1]\Material_identification_with_conductivity_classification.thermal_conductivity_classification] * ['conductive']) >= 1);
  WR5: NOT ((passage_terminus_condition = ft_terminus_condition.bilateral_bond) OR (passage_terminus_condition = ft_terminus_condition.unilateral_bond)) OR plated_passage;
  WR6: NOT (EXISTS(as_finished_passage_extent) AND EXISTS(minimum_finished_feature_size));
  WR7: NOT EXISTS(supported_external_minimum_annular_ring) OR plated_passage;
  WR8: NOT EXISTS(supported_internal_minimum_annular_ring) OR plated_passage;
  WR9: NOT EXISTS(unsupported_minimum_annular_ring) AND plated_passage;
END_ENTITY;
(*

Attribute definitions:

as_finished_deposition_thickness: specifies the thickness of the plating in the final product. The value of this attribute need not be specified.

as_finished_passage_extent: specifies the diametrical extent of the passage in the finished product. The value of this attribute need not be specified.

maximum_aspect_ratio: the largest allowable ratio of passage length divided by passage diameter for the Passage_technology_parameters. The value of this attribute need not be specified.

NOTE 3   The aspect ratio is a factor in determining the expected quality of the electroplating process in depositing metal in a passage. If the aspect ratio is large, meaning an extremely long passage in relation to its diameter, the deposition will be thinner in the central portion of the passage length than at each end of the passage. For this reason, a maximum_aspect_ratio is often determined as a factor in deciding upon the smallest passage diameters to be allowed in a PCB design. Thicker PCBs require larger minimum passage diameters, for the same expected plating quality.

minimum_finished_size: specifies the minimum diametrical extent realizable for a drilled hole for this Passage_technology. The value of this attribute need not be specified.

plated_passage: specifies whether or not the deposition_material is added to the passage for the Passage_technology. The value of TRUE indicates that the material is added. The value of FALSE indicates that the material is not added.

passage_terminus_condition: specifies the conditions required at the ends of the passage in a design where the passage meets a stratum.

NOTE 4   Industrial practice is to ignore the detailed physical model of the bond in order to reduce design processing resources. The practice is to treat a stratum reference differently depending on the value of this attribute. The type ft_terminus_condition includes an explicit description of the options. The value of this attribute need not be specified.

minimum_fabrication_allowance: specifies a role of the Length_data_element for the Passage_technology. The value of this attribute need not be specified.

minimum_finished_feature_size: specifies a role of the Length_data_element of any feature of an edge in the design that references this technology. It shall be possible to completely fill each feature the edge helps compose with either a square whose side length is equal to the minimum_finished_feature_size or a circle whose diameter is equal to the minimum_finished_feature_size. The minimum_finished_feature_size applies to the minimum material condition of the interconnect module as delivered to the customer. The measurement point shall be nominally at the mid point of the stratum in its vertical extent. The value of this attribute need not be specified.

supported_external_minimum_annular_ring: specifies a role of the Length_data_element for the Passage_technology. The value is the minimum remaining width of the annular ring after fabrication for the case that there is plating and that the Land is on an external layer. The value of this attribute need not be specified.

supported_internal_minimum_annular_ring: specifies a role of the Length_data_element for the Passage_technology. The value is the minimum remaining width of the annular ring after fabrication for the case that there is plating and that the Land is on an internal layer. The value of this attribute need not be specified.

unsupported_minimum_annular_ring: specifies a role of the Length_data_element for the Passage_technology. The value is the minimum remaining width of the annular ring after fabrication for the case that there will not be a connection to the Land. The value of this attribute need not be specified.

specification: specifies the role of the Process_specification for the Passage_technology. There shall be zero or one Process_specification for the Passage_technology. The Process_specification provides detailed descriptions of the steps encountered by material during fabrication.

deposition_material: specifies an inverse relationship that specifies that the existence of the Passage_technology is dependent on the existence of the Passage_deposition_material_identification that specifies the Passage_technology as its items. There shall be zero or one Passage_deposition_material_identification for a particular Passage_technology. The deposition_material identifies material to be plated or otherwise deposited on the passage wall.

fill_material: specifies an inverse relationship that specifies that the existence of the Passage_technology is dependent on the existence of the Passage_filling_material_identification that specifies the Passage_technology as its items. There shall be zero or one Passage_filling_material_identification for a particular Passage_technology.

Formal propositions:

UR1: The name shall be unique within a population of Passage_technology.

WR1: If deposition_material is provided, its type shall be Material_identification_with_conductivity_classification.

WR2: If Passage_technology is plated, it shall have deposition_material provided.

WR3: If as_finished_deposition_thickness is provided, then deposition_material shall be provided as well.

WR4: If Passage_technology is plated, then its deposition_material shall be electrically, magneticly, optically or thermally conductive.

WR5: If the passage_terminus_condition of the Passage_technology is either a unilateral or bilateral bond, plated_passage shall be TRUE.

NOTE 5   Plating is required because plating specifies that additional material is deposited in the passage.

WR6: The as_finished_passage_extent and the minimum_finished_feature_size shall not both be provided in the same data set.

WR7: If supported_external_minimum_annular_ring is provided then the Passage_technology shall be plated.

WR8: If supported_internal_minimum_annular_ring is provided then the Passage_technology shall be plated.

WR9: A pre-processor shall not specify that the Passage_technology is plated and also provide an unsupported_minimum_annular_ring.

4.3.21 Passage_technology_allocation_to_stack_model   EXPRESS-GMapping table

A Passage_technology_allocation_to_stack_model is a type of Stratum_sub_stack. A Passage_technology_allocation_to_stack_model is an assignment of a Passage_technology to a specific subset of a Design_stack_model. The subset is a contiguous, ordered subset of the vertical arrangement of Stratum_technology_occurrence in the model.

EXAMPLE    A Passage_technology_allocation_to_stack_model assigns a plated hole with 1mm diameter to Stratum_technology_occurrence members 1 through 6 in the Design_stack_model.

EXPRESS specification:

*)
ENTITY Passage_technology_allocation_to_stack_model
  SUBTYPE OF (Stratum_sub_stack);
  allocated_technology : Passage_technology;
  single_stratum_passage_location : OPTIONAL Stratum_technology_occurrence;
  target_stratum : OPTIONAL Stratum_technology_occurrence;
DERIVE
  terminus_stratum : SET[0:?] OF Stratum_technology_occurrence := ft_get_terminus(SELF\Stratum_sub_stack.stratum_technology_sequence);
INVERSE
  minimum_annular_ring : SET[0:?] OF Allocated_passage_minimum_annular_ring FOR associated_passage_allocation;
WHERE
  WR1: (NOT EXISTS(single_stratum_passage_location) OR (single_stratum_passage_location IN SELF\Stratum_sub_stack.associated_stackup.composing_occurrence));
  WR2: EXISTS(SELF\Stratum_sub_stack.stratum_technology_sequence) XOR EXISTS(single_stratum_passage_location);
  WR3: SIZEOF(get_stack(SELF\Stratum_sub_stack.stratum_technology_sequence)) = (SIZEOF(SELF\Stratum_sub_stack.stratum_technology_sequence) + 1);
  WR4: sts_vertex_degree_check(SELF\Stratum_sub_stack.stratum_technology_sequence, 2);
  WR5: NOT EXISTS(single_stratum_passage_location) OR NOT EXISTS(target_stratum);
  WR6: NOT EXISTS(target_stratum) OR ((target_stratum IN SELF\Stratum_sub_stack.associated_stackup.composing_occurrence) AND (target_stratum IN terminus_stratum));
  WR7: ft_count_unspecified_asto(minimum_annular_ring) < 2;
END_ENTITY;
(*

Attribute definitions:

allocated_technology: specifies the Passage_technology for the Passage_technology_allocation_to_stack_model.

single_stratum_passage_location: specifies a role of the Stratum_technology_occurrence for the Passage_technology_allocation_to_stack_model. The single_stratum_passage_location is provided when the passage is through exactly one Stratum in the stackup. The value of this attribute need not be specified.

target_stratum: specifies a role of the Stratum_technology_occurrence for the Passage_technology_allocation_to_stack_model. The target_stratum provides the ability to specify a direction for asymmetrical vias. The target_stratum is one end of the passage applied to the stackup. The value of this attribute need not be specified.

terminus_stratum: specifies a role of a set of Stratum_technology_occurrence for the Passage_technology_allocation_to_stack_model. The terminus_stratum are the ends of the stratum sequence in the allocated passage.

minimum_annular_ring: specifies an inverse relationship that specifies zero or more Allocated_passage_minimum_annular_ring that specifies the Passage_technology_allocation_to_stack_model as its associated_passage_allocation. The set of Allocated_passage_minimum_annular_ring together specify manufacturing tolerances for the fabrication of the specific passage technology in the context of the specific stackup model. The set may be empty with no elements provided.

Formal propositions:

WR1: If single_stratum_passage_location is provided then it shall be in associated_stackup.composing_occurrence.

WR2: Either stratum_technology_sequence is provided or single_stratum_passage_location , but not both shall be provided.

WR3: The number of Stratum_technology_occurrence in the stack shall be one greater than the number of stratum_technology_sequence.

WR4: There shall be no more than two Stratum_technology_occurrence_link referencing any one member of Stratum_technology_occurrence that are referenced by the stratum_technology_sequence.

NOTE 1   Rules 3, 4 together ensure that the stratum_technology_sequence form a directed list, and that there are no cycles in the sequence and that there are no holes in the sequence.

WR5: If the passage is a single stratum the target shall not be provided.

WR6: If the target_stratum is provided, then the target_stratum shall help to compose the stackup and shall be one of the terminus_stratum.

WR7: There shall be no more than one member of minimum_annular_ring provided that does not specify an associated_stratum_technology_occurrence.

NOTE 2   When an associated_stratum_technology_occurrence is not provided the technology applies to the entire passage technology in the context of the stackup and more than one Allocated_passage_minimum_annular_ring would be redundant.

4.3.22 Stratum_stack_model   EXPRESS-GMapping table

A Stratum_stack_model is a type of Template_definition that is included to define the sequence of materials in an interconnect. The stackup model is a representation of a graph and the represented graph has specific properties. The graph is a directed graph. The graph is acyclic with the sole exception being a single loop configuration for the situation where there is exactly one Stratum_technology_occurrence in the model. Because the graph relates to material structures which are connected, the graph is a connected graph. The graph may have multiple roots and multiple paths from a root to a leaf element. The convention in this part of ISO 10303 is that the direction of the elements of the graph is in the negative z dimension. The stackup is devoid of any pattern information and is intended to serve as a foundational structure. A Stratum_stack_model is a Design_stack_model.

EXAMPLE 1   Figure 4 in ISO/TS 10303-1737 illustrates several simple stackups for microstrip design structures. The parametric information related to the vertical extents of the elements in the illustration would be derived from the properties of the nodes of the stackup model which are Stratum_technology_occurrence. The properties of the Stratum_technology_occurrence are inherited from the Stratum_technology in the role of definition for the Stratum_technology_occurrence. The parametric information related to the horizontal extents of the elements in the illustration is unrelated to the Stratum_stack_model.

EXAMPLE 2   A design stackup that includes different final finish materials in different regions on the top side will have multiple root elements and therefore multiple paths through the graph.

EXPRESS specification:

*)
ENTITY Stratum_stack_model
  ABSTRACT SUPERTYPE OF (Design_stack_model)
  SUBTYPE OF (Template_definition);
DERIVE
  composing_occurrence : SET[1:?] OF Stratum_technology_occurrence := get_stack(composing_link);
INVERSE
  composing_link : SET[1:?] OF Stratum_technology_occurrence_relationship FOR scope;
WHERE
  WR1: SIZEOF(QUERY( cl <* composing_link | NOT('FABRICATION_TECHNOLOGY_ARM.STRATUM_TECHNOLOGY_OCCURRENCE_LINK' IN TYPEOF(cl)) )) = 0;
END_ENTITY;
(*

Attribute definitions:

composing_occurrence: specifies a role of the Stratum_technology_occurrence for the Stratum_stack_model. There shall exist one or more Stratum_technology_occurrences for the Stratum_stack_model. Stratum_technology_occurrence specified by composing_occurrence help to compose a Stratum_stack_model.

composing_link: specifies an inverse relationship that specifies that the existence of the Stratum_stack_model is dependent on the existence of the Stratum_technology_occurrence_relationship that specifies the Stratum_stack_model as its scope. There shall exist one or more Stratum_technology_occurrence_relationships for the Stratum_stack_model.

Formal propositions:

WR1: Only the type Stratum_technology_occurrence_link shall be a member of composing_link.

4.3.23 Stratum_sub_stack   EXPRESS-GMapping table

A Stratum_sub_stack is a type of Template_definition. A Stratum_sub_stack is either a Local_linear_stack or a Passage_technology_allocation_to_stack_model.

EXPRESS specification:

*)
ENTITY Stratum_sub_stack
  ABSTRACT SUPERTYPE OF (ONEOF (Local_linear_stack,
                                Passage_technology_allocation_to_stack_model))
  SUBTYPE OF (Template_definition);
  stratum_technology_sequence : OPTIONAL SET[1:?] OF Stratum_technology_occurrence_link;
  stack_thickness : OPTIONAL Length_tolerance_characteristic;
  associated_stackup : Design_stack_model;
WHERE
  WR1: SIZEOF(QUERY(sts <* stratum_technology_sequence | NOT(associated_stackup :=: sts\Stratum_technology_occurrence_relationship.scope)) ) = 0;
END_ENTITY;
(*

Attribute definitions:

stratum_technology_sequence: specifies a set of the Stratum_technology_occurrence_link for the Stratum_sub_stack. The value of this attribute need not be specified.

stack_thickness: specifies a set of the Length_tolerance_characteristic for the Stratum_sub_stack. The value of this attribute need not be specified.

associated_stackup: specifies a role of the Design_stack_model for the Stratum_sub_stack.

Formal propositions:

WR1: Each member of stratum_technology_sequence.scope shall also be in associated_stackup.

4.3.24 Stratum_surface_technology   EXPRESS-GMapping table

A Stratum_surface_technology is a type of Shape_element that specifies the surface characteristics for a Stratum_technology.

NOTE 1   A Stratum_surface_technology is populated to support description of top/bottom orientation of materials in a stackup.

NOTE 2   A Stratum_surface_technology\Shape_element.element_name may be used for humans to distinguish the two sides, e.g., 'shiny' and 'rough'.

EXPRESS specification:

*)
ENTITY Stratum_surface_technology
  SUBTYPE OF (Shape_element);
  SELF\Shape_element.associated_definition : Stratum_technology;
DERIVE
  surface_specification : SET[0:1] OF Document_definition := get_document_definition(SELF, 'surface specification', 'SPECIFICATION_DOCUMENT_ARM.SURFACE_FINISH_SPECIFICATION');
WHERE
  WR1: (SIZEOF(QUERY(se <* bag_to_set(USEDIN(SELF,'PROPERTY_ASSIGNMENT_ARM.ASSIGNED_PROPERTY.DESCRIBED_ELEMENT')) | 'SURFACE_CONDITIONS_ARM.SURFACE_CONDITION' IN TYPEOF(se) )) > 0) OR (SIZEOF(get_document_definition(SELF, 'surface specification', 'SPECIFICATION_DOCUMENT_ARM.SURFACE_FINISH_SPECIFICATION')) = 1);
END_ENTITY;
(*

Attribute definitions:

associated_definition: specifies a role of the Stratum_technology for the Stratum_surface_technology.

surface_specification: specifies a Document_definition that is a Surface_finish_specification to be in the role of surface_specification. There shall exist no more than one Document_definition for the Stratum_surface_technology.

Formal propositions:

WR1: Either at least one Surface_condition shall be assigned to the Stratum_surface_technology or a Surface_finish_specification shall be provided.

4.3.25 Stratum_technology   EXPRESS-GMapping table

A Stratum_technology is a type of Characterizable_object. A Stratum_technology is a means to provide material properties, parametric data associated with the technology, and material identification. A Stratum_technology maybe either a Design_layer_technology or a Documentation_layer_technology.

NOTE 1   Technology is used in this part of ISO 10303 to indicate that some manufacturing process has been applied to a material but the details of the process are not represented.

NOTE 2   In a design organization, a Stratum_technology is considered to be a set of requirements that the fabricator will meet. The level of detail will vary during the product design life cycle and across a supply chain. This part of ISO 10303 provides a minimal set of generic predefined data elements found useful in real designs. Additional design specific fabrication requirements are supported in other parts of ISO 10303.

EXAMPLE 1   ISO 10303-1669 supports the ability to exchange design specific fabrication requirements related to line and land dimensions.

NOTE 3   This part of ISO 10303 does not standardize geometric models for Stratum_technology and therefore there is no reference direction provided in Stratum_technology for orientation in the x-y plane of raw material in a stackup model. The reference direction will be provided as part of current industrial practice between business entities in the supply chain.

EXAMPLE 2   A laminate supplier indicates to a fabrication supplier that the long side of the rectangular material sheet is the reference axis for material property measurements.

EXPRESS specification:

*)
ENTITY Stratum_technology
  SUPERTYPE OF (ONEOF (Design_layer_technology,
                       Documentation_layer_technology))
  SUBTYPE OF (Characterizable_object);
  layer_position : layer_position_type;
  stratum_thickness : OPTIONAL Length_tolerance_characteristic;
  minimum_finished_feature_size : OPTIONAL Length_data_element;
  laminate_stiffness_class : OPTIONAL stiffness_class;
  minimum_finished_feature_spacing : OPTIONAL Length_data_element;
  maximum_feature_size_requirement : OPTIONAL Length_data_element;
  minimum_aspect_ratio : OPTIONAL REAL;
DERIVE
  specification : SET[0:1] OF Document_definition := get_document_definition(SELF, 'specification', 'SPECIFICATION_DOCUMENT_ARM.PROCESS_SPECIFICATION');
  surface_specification : SET[0:1] OF Document_definition := get_document_definition(SELF, 'surface specification', 'SPECIFICATION_DOCUMENT_ARM.SURFACE_FINISH_SPECIFICATION');
INVERSE
  stratum_material : SET[1:1] OF Material_identification FOR items;
  surface_technology : SET[0:2] OF Stratum_surface_technology FOR associated_definition;
UNIQUE
  UR1: SELF\Characterizable_object.name;
WHERE
  WR1: NOT (layer_position = layer_position_type.primary) OR ('FABRICATION_TECHNOLOGY_ARM.DESIGN_LAYER_TECHNOLOGY' IN TYPEOF(SELF));
  WR2: NOT (layer_position = layer_position_type.secondary) OR ('FABRICATION_TECHNOLOGY_ARM.DESIGN_LAYER_TECHNOLOGY' IN TYPEOF(SELF));
  WR3: 'CONDUCTIVITY_MATERIAL_ASPECTS_ARM.'+ 'MATERIAL_IDENTIFICATION_WITH_CONDUCTIVITY_CLASSIFICATION' IN TYPEOF (stratum_material);
  WR4: NOT((SIZEOF(surface_technology) > 0 ) AND (SIZEOF(surface_specification) = 1));
END_ENTITY;
(*

Attribute definitions:

layer_position: specifies one of the layer_position_types of the Stratum for the Stratum_technology. Primary and secondary shall only be used if the member of Stratum_technology is a Design_layer_technology.

stratum_thickness: specifies the Length_tolerance_characteristic for the thickness of the Stratum_technology after manufacturing. The value of this attribute need not be specified.

minimum_finished_feature_size: specifies the role of the Length_data_element of any feature of the Stratum. It shall be possible to completely fill each Stratum_feature with either a square whose side length is equal to the minimum_finished_feature_size or a circle whose diameter is equal to the minimum_finished_feature_size. The minimum_finished_feature_size applies to the minimum material condition of the interconnect module as delivered to the customer. The measurement point shall be nominally at the mid point of the stratum in its vertical extent. The value of this attribute need not be specified.

laminate_stiffness_class: specifies the stiffness_class of which the Stratum_technology is a member. The value of this attribute need not be specified.

minimum_finished_feature_spacing: specifies the minimum spacing within or between Stratum_features of the Stratum. The value of this attribute need not be specified. Two facing arbitrary points, each of which is on the boundary of a Stratum_feature shall be no closer than this value.

maximum_feature_size_requirement: specifies the maximum size of any feature of the Stratum. It is defined by the diameter of the largest circle that will fit within the Stratum_feature. The value of this attribute need not be specified.

minimum_aspect_ratio: the smallest allowable ratio of Stratum_technology thickness divided by the horizontal distance that a feature side wall deviates from vertical. The value of this attribute need not be specified.

NOTE 4   The aspect ratio is a factor in determining the expected quality of the process used to realize the feature. If the aspect ratio is large, meaning an extremely thick material in relation to its deviation from vertical at the edge, certain idealizations more accurately apply.

specification: specifies the role of the Process_specification for the Stratum_technology. The value of this attribute need not be specified.

surface_specification: specifies the role of the Surface_finish_specification for the Stratum_technology. The value of this attribute need not be specified.

stratum_material: specifies an inverse relationship that specifies that the existence of the Stratum_technology is dependent on the existence of the Material_identification that specifies the Stratum_technology as its items. There shall exist exactly one Material_identification for the Stratum_technology.

surface_technology: specifies an inverse relationship that specifies that the existence of the Stratum_technology is dependent on the existence of the Stratum_surface_technology that specifies the Stratum_technology as its associated_definition. There shall exist no more than two Stratum_surface_technologies for the Stratum_technology. If only one member of Stratum_surface_technology is provided, then that member applies to both sides of a Stratum_technology. If two members of Stratum_surface_technology are provided then they apply individually to the two sides of a Stratum_technology.

Formal propositions:

UR1: The name shall be unique within a population of Stratum_technologies.

WR1: If layer_position is primary, then Stratum_technology shall be Design_layer_technology.

WR2: If layer_position is secondary, then Stratum_technology shall be Design_layer_technology.

WR3: The stratum_material shall be of type Material_identification_with_conductivity_classification.

WR4: Either one or more surface_technology may be provided or a surface_specification may be provided, but surface_technology and surface_specification shall not be provided in the same model.

4.3.26 Stratum_technology_mapping_relationship   EXPRESS-GMapping table

A Stratum_technology_mapping_relationship is a relationship between a Footprint_library_stratum_technology and a Stratum_technology included to specify a formal relationship between a more general model and a more specific model where the more specific model includes thickness.

NOTE    Thickness is required for interconnect designs in order to realize real products, but footprint definitions are independent of thickness. There may be one or more Stratum_technology populated in a design for each Footprint_library_stratum_technology populated in a footprint definition.

EXAMPLE    A footprint may include one Footprint_library_stratum_technology for features on internal layers, while a specific design has two thicknesses of internal layers, resulting in two Stratum_technology that are mapped to that one Footprint_library_stratum_technology

EXPRESS specification:

*)
ENTITY Stratum_technology_mapping_relationship;
  source_stratum_technology : Footprint_library_stratum_technology;
  target_stratum_technology : Stratum_technology;
WHERE
  WR1: NOT ('FABRICATION_TECHNOLOGY_ARM.FOOTPRINT_LIBRARY_STRATUM_TECHNOLOGY' IN TYPEOF(target_stratum_technology));
  WR2: acyclic_stratum_technology_mapping_relationship(SELF, [target_stratum_technology], 'FABRICATION_TECHNOLOGY_ARM.STRATUM_TECHNOLOGY_MAPPING_RELATIONSHIP');
END_ENTITY;
(*

Attribute definitions:

source_stratum_technology: specifies a role of the Footprint_library_stratum_technology for the Stratum_technology_mapping_relationship.

target_stratum_technology: specifies a role of the Stratum_technology for the Stratum_technology_mapping_relationship.

Formal propositions:

WR1: A Footprint_library_stratum_technology shall not be a target_stratum_technology.

WR2: There shall not be a cycle in the population of Stratum_technology_mapping_relationship.

4.3.27 Stratum_technology_occurrence   EXPRESS-GMapping table

A Stratum_technology_occurrence is a reference or instance of a Stratum_technology provided for the purpose of constructing an abstract stackup model of an interconnect based solely on the technology parameters and not on any specific set of geometric properties.

NOTE 1   The actual stackup model will be constructed using Stratum_stack_model and Stratum_technology_occurrence_link.

EXPRESS specification:

*)
ENTITY Stratum_technology_occurrence;
  name : STRING;
  definition : Stratum_technology;
  primary : OPTIONAL Stratum_surface_technology;
  rotation : OPTIONAL Angle_data_element;
UNIQUE
  UR1: name;
END_ENTITY;
(*

Attribute definitions:

name: the words by which the Stratum_technology_occurrence is known.

definition: specifies the role of the Stratum_technology for the Stratum_technology_occurrence. Stratum_technology provides parametric technology data for the Stratum_technology_occurrence.

primary: specifies the Stratum_surface_technology that is the more positive in the z direction.

EXAMPLE 1   A Stratum_technology has a matte side and a shiny side where the shiny side is designated as the top side. In the creation of a stackup model the fabricator decides to flip the material. That fact is communicated by stating that the matt side Stratum_surface_technology is referenced in the primary role. In this example two members of Stratum_surface_technology are populated, matte and shiny.

The value of this attribute need not be specified.

rotation: the angle by which the Stratum_technology is rotated in a stackup definition.

EXAMPLE 2   Cloth orientation of 90 degrees with respect to a reference direction is indicated and the laminate supplier has indicated that the long side of the rectangular material sheet is the reference axis.

NOTE 2   This attribute is supporting the case where cloth orientation is required.

The value of this attribute need not be specified.

Formal propositions:

UR1: The name shall be unique within a population of Stratum_technology_occurrences.

4.3.28 Stratum_technology_occurrence_feature_constraint   EXPRESS-GMapping table

A Stratum_technology_occurrence_feature_constraint is a type of Stratum_technology_occurrence_relationship.

EXPRESS specification:

*)
ENTITY Stratum_technology_occurrence_feature_constraint
  SUBTYPE OF (Stratum_technology_occurrence_relationship);
  difference_distance : OPTIONAL length_measure;
  intersection_distance : OPTIONAL length_measure;
WHERE
  WR1: EXISTS (difference_distance) XOR EXISTS(intersection_distance);
END_ENTITY;
(*

Attribute definitions:

difference_distance: specifies a role of the length_measure for the Stratum_technology_occurrence_feature_constraint. The value of this attribute need not be specified.

intersection_distance: specifies a role of the length_measure for the Stratum_technology_occurrence_feature_constraint. The value of this attribute need not be specified

Formal propositions:

WR1: Exactly one of (difference_distance, intersection_distance) shall be provided.

4.3.29 Stratum_technology_occurrence_link   EXPRESS-GMapping table

A Stratum_technology_occurrence_link is a type of Stratum_technology_occurrence_relationship A Stratum_technology_occurrence_link is a relationship that specifies a directed link between two members of Stratum_technology_occurrence. The graph composed of a set of links for a particular stackup model is acyclic or consists of only a single loop. The link exists only in the scope of a single member of Stratum_stack_model. The link forms a z-axis dimension in the stackup model. The normal usage is for the subsequent Stratum_technology_occurrence to be more negative in the z dimension than the precedent Stratum_technology_occurrence.

NOTE 1   While it is improbable that final design definition would include a member of Stratum_technology_occurrence_link with the sto_1 equal to the sto_2, it is possible that test data or intermediate design data in a work flow may include only one stratum in a design definition and therefore the same member of Stratum_technology_occurrence at each end of the link, forming a loop. Therefore this part of ISO 10303 supports that configuration. That configuration is only allowed in the case of a stackup model having exactly one link.

NOTE 2   The Stratum_technology_occurrence_link constraints only enforce an acyclic constraint on graphs composed of Stratum_technology_occurrence_link. Other constraints are contained in the Stratum_stack_model.

EXPRESS specification:

*)
ENTITY Stratum_technology_occurrence_link
  SUBTYPE OF (Stratum_technology_occurrence_relationship);
  base_stratum_technology_occurrence : OPTIONAL up_or_down;
WHERE
  WR1: NOT (SELF\Stratum_technology_occurrence_relationship.sto_1 :=: SELF\Stratum_technology_occurrence_relationship.sto_2) OR (SIZEOF(SELF\Stratum_technology_occurrence_relationship.scope\Stratum_stack_model.composing_link) = 1);
END_ENTITY;
(*

Attribute definitions:

base_stratum_technology_occurrence: specifies the role of the Stratum_technology_occurrence where that Stratum_technology_occurrence is serving as a base substrate for the other Stratum_technology_occurrence specified by the Stratum_technology_occurrence_link.

Formal propositions:

WR1: A Stratum_technology_occurrence_link may have the same Stratum_technology_occurrence as sto_1 and sto_2 only if that Stratum_technology_occurrence_link is the only Stratum_technology_occurrence_link in scope.

4.3.30 Stratum_technology_occurrence_relationship   EXPRESS-GMapping table

A Stratum_technology_occurrence_relationship is a relationship that relates two Stratum_technology_occurrences. If a relationship is in scope of a member of Library_stack_model, then the relationship is inherited by each design_stack_models that uses that Library_stack_model as reference. If a relationship is in scope of a member of Library_stack_model and there is a relationship for one of referenced Stratum_technology_occurrence in Design_stack_model that references that Library_stack_model, then the relationship in the scope of the Library_stack_model is overridden with the relationship in the Design_stack_model.

A Stratum_technology_occurrence_relationship is either a Derived_stratum_technology_occurrence_relationship or a Stratum_technology_occurrence_link or a Stratum_technology_occurrence_swap_relationship or a Stratum_technology_occurrence_feature_constraint.

EXPRESS specification:

*)
ENTITY Stratum_technology_occurrence_relationship
  ABSTRACT SUPERTYPE OF (ONEOF (Derived_stratum_technology_occurrence_relationship,
                                Stratum_technology_occurrence_link,
                                Stratum_technology_occurrence_swap_relationship,
                                Stratum_technology_occurrence_feature_constraint));
  sto_1 : Stratum_technology_occurrence;
  sto_2 : Stratum_technology_occurrence;
  scope : Stratum_stack_model;
WHERE
  WR1: acyclic_stratum_technology_occurrence_relationship(SELF, [sto_2], 'FABRICATION_TECHNOLOGY_ARM.STRATUM_TECHNOLOGY_OCCURRENCE_RELATIONSHIP');
END_ENTITY;
(*

Attribute definitions:

sto_1: specifies the primary Stratum_technology_occurrence for the Stratum_technology_occurrence_relationship.

sto_2: specifies the secondary Stratum_technology_occurrence for the Stratum_technology_occurrence_relationship.

scope: specifies a role of the Stratum_stack_model for the Stratum_technology_occurrence_relationship.

Formal propositions:

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

4.3.31 Stratum_technology_occurrence_swap_relationship   EXPRESS-GMapping table

A Stratum_technology_occurrence_swap_relationship is a type of Stratum_technology_occurrence_relationship provided to indicate that sto_2 has been replaced with sto_1. The interpretation is that a post-processor shall replace sto_2 with sto_1 as part of the terminal stage of stackup model processing.

EXPRESS specification:

*)
ENTITY Stratum_technology_occurrence_swap_relationship
  SUBTYPE OF (Stratum_technology_occurrence_relationship);
UNIQUE
  UR1: SELF\Stratum_technology_occurrence_relationship.sto_1, SELF\Stratum_technology_occurrence_relationship.scope;
  UR2: SELF\Stratum_technology_occurrence_relationship.sto_2, SELF\Stratum_technology_occurrence_relationship.scope;
WHERE
  WR1: SELF\Stratum_technology_occurrence_relationship.sto_1 <> SELF\Stratum_technology_occurrence_relationship.sto_2;
  WR2: (SELF\Stratum_technology_occurrence_relationship.sto_1 IN SELF\Stratum_technology_occurrence_relationship.scope\Stratum_stack_model.composing_occurrence) AND (SELF\Stratum_technology_occurrence_relationship.sto_2 IN SELF\Stratum_technology_occurrence_relationship.scope\Stratum_stack_model.composing_occurrence);
END_ENTITY;
(*

Formal propositions:

UR1: The combination of sto_1 and scope shall be unique within a population of Stratum_technology_occurrence_swap_relationship.

UR2: The combination of sto_2 and scope shall be unique within a population of Stratum_technology_occurrence_swap_relationship.

WR1: The sto_1 shall not be equal to the sto_2.

WR2: The sto_1 and the sto_2 shall be members of composing_occurrence of Stratum_stack_model that is in role of scope for Stratum_technology_occurrence_swap_relationship.

4.3.32 Stratum_technology_swap_relationship   EXPRESS-GMapping table

A Stratum_technology_swap_relationship is a relationship that relates two Stratum_technologies provided to indicate that one Stratum_technology shall replace the other Stratum_technology.

EXPRESS specification:

*)
ENTITY Stratum_technology_swap_relationship;
  primary_stratum_technology : Stratum_technology;
  secondary_stratum_technology : Stratum_technology;
UNIQUE
  UR1: primary_stratum_technology;
  UR2: secondary_stratum_technology;
WHERE
  WR1: NOT (('FABRICATION_TECHNOLOGY_ARM.DOCUMENTATION_LAYER_TECHNOLOGY' IN TYPEOF(primary_stratum_technology)) AND EXISTS(primary_stratum_technology\Documentation_layer_technology.pre_defined_documentation_layer_purpose)) OR (primary_stratum_technology\Documentation_layer_technology.pre_defined_documentation_layer_purpose = secondary_stratum_technology\Documentation_layer_technology.pre_defined_documentation_layer_purpose);
  WR2: TYPEOF(primary_stratum_technology) = TYPEOF(secondary_stratum_technology);
  WR3: primary_stratum_technology\Stratum_technology.layer_position = layer_position_type.primary;
  WR4: secondary_stratum_technology\Stratum_technology.layer_position = layer_position_type.secondary;
  WR5: primary_stratum_technology <> secondary_stratum_technology;
  WR6: acyclic_stratum_technology_swap_relationship(SELF, [secondary_stratum_technology], 'FABRICATION_TECHNOLOGY_ARM.STRATUM_TECHNOLOGY_SWAP_RELATIONSHIP');
END_ENTITY;
(*

Attribute definitions:

primary_stratum_technology: specifies one role of the Stratum_technology for the Stratum_technology_swap_relationship. The primary_stratum_technology is the replacement Stratum_technology.

secondary_stratum_technology: specifies a role of the Stratum_technology for the Stratum_technology_swap_relationship. The secondary_stratum_technology is the original Stratum_technology.

Formal propositions:

UR1: There can be no more than one Stratum_technology_swap_relationship that references a Stratum_technology as primary.

UR2: There can be no more than one Stratum_technology_swap_relationship that references a Stratum_technology as secondary.

WR1: If the primary_stratum_technology and secondary_stratum_technology are Documentation_layer_technology and if the layer purpose is predefined then their layer_position shall be the same.

NOTE    The purpose of this where rule is to ensure that the user does not mix different types of documentation layer technologies in a swap relationship. It is inappropriate to swap solder mask to silkscreen.

WR2: The type of primary_stratum_technology and secondary_stratum_technology shall be the same.

WR3: The primary_stratum_technology layer_position_type shall be primary.

WR4: The secondary_stratum_technology layer_position_type shall be secondary.

WR5: The primary_stratum_technology shall not be the secondary_stratum_technology.

WR6: The graph of instances of the Application Object Stratum_technology_swap_relationship shall not contain a cycle.

4.4 ARM function definitions

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

4.4.1 acyclic_equivalent_stackup_model_definition

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

EXPRESS specification:

*)
FUNCTION acyclic_equivalent_stackup_model_definition (relation : Equivalent_stackup_model_definition; relatives : SET[1:?] OF Stratum_stack_model; specific_relation : STRING) : BOOLEAN;
LOCAL
    x : SET OF Equivalent_stackup_model_definition := [];
END_LOCAL;

    IF relation.primary_stackup_model IN relatives THEN
      RETURN (FALSE);
    END_IF;
      x := QUERY(pd <* bag_to_set(USEDIN(relation.primary_stackup_model,
        'FABRICATION_TECHNOLOGY_ARM.' + 'EQUIVALENT_STACKUP_MODEL_DEFINITION.' +
        'EQUIVALENT_STACKUP_MODEL')) | specific_relation IN TYPEOF(pd));
    REPEAT i := 1 TO HIINDEX(x);
      IF NOT acyclic_equivalent_stackup_model_definition(x[i], relatives +
        relation.primary_stackup_model, specific_relation) THEN
        RETURN (FALSE);
      END_IF;
    END_REPEAT;
  RETURN (TRUE);
END_FUNCTION;
(*

Argument definitions:

relation: the specified Equivalent_stackup_model_definition.

relatives: the specified set of Stratum_stack_models.

specific_relation: the specified STRING.

4.4.2 acyclic_stratum_technology_mapping_relationship

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

EXPRESS specification:

*)
FUNCTION acyclic_stratum_technology_mapping_relationship (relation : Stratum_technology_mapping_relationship; relatives : SET[1:?] OF Stratum_technology; specific_relation : STRING) : BOOLEAN;
LOCAL
     x : SET OF Stratum_technology_mapping_relationship := [];
  END_LOCAL;

    IF relation.source_stratum_technology IN relatives THEN
      RETURN (FALSE);
    END_IF;
    x := QUERY(pd <* bag_to_set(USEDIN(relation.source_stratum_technology,
      'FABRICATION_TECHNOLOGY_ARM.' +
      'STRATUM_TECHNOLOGY_MAPPING_RELATIONSHIP.' +
      'TARGET_STRATUM_TECHNOLOGY')) | specific_relation IN TYPEOF(pd));
    REPEAT i := 1 TO HIINDEX(x);
      IF NOT acyclic_stratum_technology_mapping_relationship(x[i], relatives +
        relation.source_stratum_technology, specific_relation) THEN
        RETURN (FALSE);
      END_IF;
    END_REPEAT;
    RETURN (TRUE);
END_FUNCTION;
(*

Argument definitions:

relation: the specified Stratum_technology_mapping_relationship.

relatives: the specified set of Stratum_technologies.

specific_relation: the specified STRING.

4.4.3 acyclic_stratum_technology_occurrence_relationship

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

EXPRESS specification:

*)
FUNCTION acyclic_stratum_technology_occurrence_relationship (relation : Stratum_technology_occurrence_relationship; relatives : SET[1:?] OF Stratum_technology_occurrence; specific_relation : STRING) : BOOLEAN;
LOCAL
     x : SET OF Stratum_technology_occurrence_relationship := [];
  END_LOCAL;
    IF relation.sto_1 IN relatives THEN
      RETURN (FALSE);
    END_IF;
    x := QUERY(pd <* bag_to_set(USEDIN(relation.sto_1,
      'FABRICATION_TECHNOLOGY_ARM.' +
      'STRATUM_TECHNOLOGY_OCCURRENCE_RELATIONSHIP.' +
      'STO_2')) | specific_relation IN TYPEOF(pd));
    REPEAT i := 1 TO HIINDEX(x);
      IF NOT acyclic_Stratum_technology_occurrence_relationship(x[i], relatives +
        relation.sto_1, specific_relation) THEN
        RETURN (FALSE);
      END_IF;
    END_REPEAT;
    RETURN (TRUE);
END_FUNCTION;
(*

Argument definitions:

relation: the specified Stratum_technology_occurrence_link.

relatives: the set of Stratum_technology_occurrences.

specific_relation: the secified STRING.

4.4.4 acyclic_stratum_technology_swap_relationship

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

EXPRESS specification:

*)
FUNCTION acyclic_stratum_technology_swap_relationship (relation : Stratum_technology_swap_relationship; relatives : SET[1:?] OF Stratum_technology; specific_relation : STRING) : BOOLEAN;
LOCAL
     x : SET OF Stratum_technology_swap_relationship := [];
  END_LOCAL;

    IF relation.primary_stratum_technology IN relatives THEN
      RETURN (FALSE);
    END_IF;
    x := QUERY(pd <* bag_to_set(USEDIN(relation.primary_stratum_technology,
      'FABRICATION_TECHNOLOGY_ARM.' +
      'STRATUM_TECHNOLOGY_SWAP_RELATIONSHIP.' +
      'SECONDARY_STRATUM_TECHNOLOGY')) | specific_relation IN TYPEOF(pd));
    REPEAT i := 1 TO HIINDEX(x);
      IF NOT acyclic_stratum_technology_swap_relationship(x[i], relatives +
        relation.primary_stratum_technology, specific_relation) THEN
        RETURN (FALSE);
      END_IF;
    END_REPEAT;
    RETURN (TRUE);
END_FUNCTION;
(*

Argument definitions:

relation: the specified Stratum_technology_swap_relationship.

relatives: the set of Stratum_technologies.

specific_relation: the secified STRING.

4.4.5 ft_count_unspecified_asto

The ft_count_unspecified_asto function returns the number of Allocated_passage_minimum_annular_ring input that have an unspecified associated_stratum_technology_occurrence.

EXPRESS specification:

*)
FUNCTION ft_count_unspecified_asto (input : SET[0:?] OF Allocated_passage_minimum_annular_ring) : INTEGER;
LOCAL
     count : INTEGER := 0;
    END_LOCAL;
    REPEAT i := 1 to SIZEOF(input) BY 1;
     IF NOT EXISTS(input[i]\Allocated_passage_minimum_annular_ring.associated_stratum_technology_occurrence) THEN
       count := count + 1;
     END_IF;
    END_REPEAT;
    RETURN(count);
END_FUNCTION;
(*

Argument definitions:

input: the specified set of Allocated_passage_minimum_annular_rings.

4.4.6 ft_get_terminus

The ft_get_terminus function returns the set of Stratum_technology_occurrence that have single sided references to them, e.g. input only or output only.

EXPRESS specification:

*)
FUNCTION ft_get_terminus (input : SET[0:?] OF Stratum_technology_occurrence_link) : SET[0:?] OF Stratum_technology_occurrence;
LOCAL
  sto : SET OF Stratum_technology_occurrence := get_stack(input);
  i : INTEGER := 0;
  j : INTEGER := 0;
  pstoo : SET OF Stratum_technology_occurrence := [];
  sstoo : SET OF Stratum_technology_occurrence := [];
END_LOCAL;
  pstoo := sto;
  sstoo := sto;
 REPEAT i := 1 TO SIZEOF(sto) BY 1;
  REPEAT j := 1 TO SIZEOF(input) BY 1;
	IF (input[j]\Stratum_technology_occurrence_relationship.sto_1 :=: sto[i]) THEN 
	  pstoo := pstoo - sto[i];
	END_IF;  
	IF (input[j]\Stratum_technology_occurrence_relationship.sto_2 :=: sto[i]) THEN 
	  sstoo := sstoo - sto[i];
	END_IF;  
  END_REPEAT;                                     
 END_REPEAT;                                     
RETURN(pstoo + sstoo);
END_FUNCTION;
(*

Argument definitions:

input: the specified set of Stratum_technology_occurrence_links.

4.4.7 get_stack

The get_stack function returns the set of all Stratum_technology_occurrences that are referenced by members of input as sto_1 or sto_2.

EXPRESS specification:

*)
FUNCTION get_stack (input : SET[0:?] OF Stratum_technology_occurrence_link) : SET[0:?] OF Stratum_technology_occurrence;
LOCAL
      sto : SET OF Stratum_technology_occurrence := [];
      i : INTEGER := 0;
    END_LOCAL;
    REPEAT  i := 1 TO SIZEOF(input) BY 1;
      sto := sto + input[i]\Stratum_technology_occurrence_relationship.sto_1 + input[i]\Stratum_technology_occurrence_relationship.sto_2;
    END_REPEAT;
    RETURN(sto);
END_FUNCTION;
(*

Argument definitions:

input: the specified set of Stratum_technology_occurrence_link.

4.4.8 less

The less function returns a Boolean value to indicate if one input length is less than a second input length. Only the interface declaration for the function is provided.

EXPRESS specification:

*)
FUNCTION less (input1 : Length_tolerance_characteristic; input2 : ft_value_select) : BOOLEAN;
RETURN(TRUE);
END_FUNCTION;
(*

Argument definitions:

input1: the specified Length_tolerance_characteristic.

input2: the specified Length_tolerance_characteristic.

4.4.9 sts_vertex_degree_check

The sts_vertex_degree_check function returns TRUE if all Stratum_technology_occurrences referenced by members of input are referenced no more than once as sto_1 and no more than once as sto_2 by members of input. Otherwise it returns false.

EXPRESS specification:

*)
FUNCTION sts_vertex_degree_check (input : SET[0:?] OF Stratum_technology_occurrence_link; n : INTEGER) : BOOLEAN;
LOCAL
   psto : INTEGER := 0;
   ssto : INTEGER := 0;
   sto : SET OF Stratum_technology_occurrence := get_stack(input);
   i : INTEGER := 0;
   j : INTEGER := 0;
   pass : BOOLEAN := TRUE;
 END_LOCAL;
  REPEAT i := 1 TO SIZEOF(sto) BY 1;
   REPEAT j := 1 TO SIZEOF(input) BY 1;
     IF (input[j]\Stratum_technology_occurrence_relationship.sto_1 :=: sto[i]) THEN 
      psto := psto + 1;
      IF (psto = n) THEN
       pass := FALSE; 
       ESCAPE; 
      END_IF;
     END_IF;  
     IF (input[j]\Stratum_technology_occurrence_relationship.sto_2 :=: sto[i]) THEN 
      ssto := ssto + 1;  
      IF (ssto = n) THEN 
       pass := FALSE; 
       ESCAPE; 
      END_IF;
     END_IF;  
   END_REPEAT;                                     
  END_REPEAT;                                     
 RETURN(pass);
END_FUNCTION;
(*

Argument definitions:

input: the specified set of Stratum_technology_occurrence_link.

n: the specified INTEGER value.



*)
END_SCHEMA;  -- Fabrication_technology_arm
(*


© ISO 2018 — All rights reserved