Application module: Interconnect placement requirements | ISO/TS 10303-1690:2018-11(E) © ISO |
This clause specifies the information requirements for the Interconnect placement requirements 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 Interconnect_placement_requirements_arm schema and identifies the necessary external references.
EXPRESS specification:
*)
SCHEMA Interconnect_placement_requirements_arm;
(*
The following EXPRESS interface statement specifies the elements imported from the ARM of another application module.
EXPRESS specification:
*)
USE FROM
Layered_interconnect_module_with_printed_component_design_arm;
--
ISO/TS 10303-1700
(*
NOTE 1 The schemas referenced above are specified in the following part of ISO 10303:
Layered_interconnect_module_with_printed_component_design_arm ISO/TS 10303-1700
NOTE 2 See Annex C, Figures C.1, C.2and C.3 for a graphical representation of this schema.
This subclause specifies the ARM types for this application module. The ARM types and definitions are specified below.
The assembly_or_interconnect_design_object_select type is an extensible list of alternate data types that allows for the designation of the data types Assembly_component, Component_feature, and interconnect_module_design_object_select.
NOTE The list of entity data types may be extended in application modules that use the constructs of this module.
EXPRESS specification:
*)
TYPE
assembly_or_interconnect_design_object_select =
EXTENSIBLE
SELECT
(Assembly_component,
Component_feature,
interconnect_module_design_object_select);
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
interconnect_module_design_object_category =
EXTENSIBLE
ENUMERATION
OF
(assembly_component_category,
embedded_physical_component_terminal_category,
interconnect_module_via,
interconnect_module_inter_stratum_feature,
interconnect_module_cutout,
interconnect_module_fill_area,
interconnect_module_stratum_feature);
END_TYPE;
(*
Enumerated item definitions:
assembly_component_category: specifies that category is assembly component category;
embedded_physical_component_terminal_category: specifies that category is embedded physical component terminal category;
interconnect_module_via: specifies that category is interconnect module via;
interconnect_module_inter_stratum_feature: specifies that category is interconnect module inter stratum feature;
interconnect_module_cutout: specifies that category is interconnect module cutout;
interconnect_module_fill_area: specifies that category is interconnect module fill area;
interconnect_module_stratum_feature: specifies that category is interconnect module stratum feature;
The interconnect_module_design_object_category_or_group type allows for the designation of the data types interconnect_module_design_object_category, and Group.
EXPRESS specification:
*)
TYPE
interconnect_module_design_object_category_or_group =
SELECT
(interconnect_module_design_object_category,
Group);
END_TYPE;
(*
The interconnect_module_design_object_select type is an extensible list of alternate data types that allows for the designation of the data types Via, Cutout, Component_termination_passage, Land, Conductor, Conductive_filled_area, Stratum_feature, Stratum, Laminate_component, Inter_stratum_feature, and Printed_component.
NOTE The list of entity data types may be extended in application modules that use the constructs of this module.
EXPRESS specification:
*)
TYPE
interconnect_module_design_object_select =
EXTENSIBLE
SELECT
(Via,
Cutout,
Component_termination_passage,
Land,
Conductor,
Conductive_filled_area,
Stratum_feature,
Stratum,
Laminate_component,
Inter_stratum_feature,
Printed_component);
END_TYPE;
(*
The ipr_requirement_assignment_item type is an extension of the requirement_assignment_item type. It adds the data types Interconnect_module_constraint_region, and Stratum_constraint_region 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
ipr_requirement_assignment_item =
EXTENSIBLE
GENERIC_ENTITY
SELECT
BASED_ON
requirement_assignment_item
WITH
(Interconnect_module_constraint_region,
Stratum_constraint_region);
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
lam_product_design_object_category =
ENUMERATION
OF
(assembly_component_category,
assembly_module_category,
assembly_module_component_category,
assembly_module_component_terminal_category,
assembly_module_macro_component_category,
assembly_module_macro_component_join_terminal_category,
bare_die_component_category,
bare_die_component_terminal_category,
buried_via_category,
cable_component_category,
component_feature_category,
component_mounting_feature_category,
component_termination_passage_category,
component_termination_passage_and_contact_size_dependent_land_category,
component_termination_passage_interface_terminal_category,
component_termination_passage_join_terminal_category,
conductive_interconnect_element_terminal_category,
conductive_interconnect_element_with_pre_defined_transitions_category,
conductive_interconnect_element_with_user_defined_single_transition_category,
connected_area_component_category,
contact_size_dependent_land_category,
cutout_category,
cutout_edge_segment_category,
dielectric_material_passage_category,
electrical_isolation_laminate_component_category,
embedded_physical_component_terminal_category,
fiducial_category,
fill_area_category,
inter_stratum_feature_category,
interconnect_component_interface_terminal_category,
interconnect_component_join_terminal_category,
interconnect_module_component_category,
interconnect_module_component_stratum_based_terminal_category,
interconnect_module_component_surface_feature_category,
interconnect_module_component_terminal_category,
interconnect_module_edge_category,
interconnect_module_edge_segment_category,
interconnect_module_macro_component_category,
interconnect_module_macro_component_join_terminal_category,
interface_access_material_removal_laminate_component_category,
interface_access_stratum_feature_template_component_category,
interface_component_category,
interfacial_connection_category,
internal_probe_access_area_category,
laminate_component_category,
generic_laminate_text_component_category,
laminate_text_string_component_category,
land_category,
land_interface_terminal_category,
land_join_terminal_category,
material_removal_laminate_component_category,
minimally_defined_component_terminal_category,
movable_packaged_component_join_terminal_category,
multi_layer_material_removal_laminate_component_category,
multi_stratum_special_symbol_component_category,
non_conductive_base_blind_via_category,
packaged_component_category,
packaged_component_join_terminal_category,
packaged_connector_component_category,
packaged_connector_component_interface_terminal_category,
partially_plated_cutout_category,
partially_plated_interconnect_module_edge_category,
physical_component_category,
physical_connectivity_interrupting_cutout_category,
physical_laminate_component_category,
physical_network_supporting_inter_stratum_feature_category,
plated_conductive_base_blind_via_category,
plated_cutout_category,
plated_cutout_edge_segment_category,
plated_interconnect_module_edge_category,
plated_interconnect_module_edge_segment_category,
plated_passage_category,
plated_passage_or_unsupported_passage_category,
primary_stratum_indicator_symbol_category,
printed_component_join_terminal_category,
printed_connector_component_interface_terminal_category,
probe_access_area_category,
routed_interconnect_component_category,
routed_physical_component_category,
single_stratum_special_symbol_component_category,
stratum_feature_category,
stratum_feature_template_component_category,
thermal_isolation_laminate_component_category,
unrouted_conductive_interconnect_element_category,
unsupported_passage_category,
unsupported_passage_dependent_land_category,
via_category,
via_terminal_category);
END_TYPE;
(*
Enumerated item definitions:
assembly_component_category: specifies that an instance that in this category is an implementation of the assembly component;
assembly_module_category: specifies that an instance that in this category is an implementation of the assembly module;
assembly_module_component_category: specifies that an instance that in this category is an implementation of the assembly module component;
assembly_module_component_terminal_category: specifies that an instance that is in this category is an implementation of the assembly module component terminal;
assembly_module_macro_component_category: specifies that an instance that is in this category is an implementation of the assembly module macro component;
assembly_module_macro_component_join_terminal_category: specifies that an instance that is in this category is an implementation of the assembly module macro component join terminal;
bare_die_component_category: specifies that an instance that is in this category is an implementation of the bare die component;
bare_die_component_terminal_category: specifies that an instance that is in this category is an implementation of the bare die component terminal;
buried_via_category: specifies that an instance that is in this category is an implementation of the buried via;
cable_component_category: specifies that an instance that is in this category is an implementation of the cable component;
component_feature_category: specifies that an instance that is in this category is an implementation of the component feature;
component_mounting_feature_category: specifies that an instance that is in this category is an implementation of the component mounting feature;
component_termination_passage_category: specifies that an instance that is in this category is an implementation of the component termination passage;
component_termination_passage_and_contact_size_dependent_land_category: specifies that an instance that is in this category is an implementation of the component termination passage and contact size dependent land;
component_termination_passage_interface_terminal_category: specifies that an instance that is in this category is an implementation of the component termination passage interface terminal;
component_termination_passage_join_terminal_category: specifies that an instance that is in this category is an implementation of the component termination passage join terminal;
conductive_interconnect_element_terminal_category: specifies that an instance that is in this category is an implementation of the conductive interconnect element terminal;
conductive_interconnect_element_with_pre_defined_transitions_category: specifies that an instance that is in this category is an implementation of the conductive interconnect element with pre defined transitions;
conductive_interconnect_element_with_user_defined_single_transition_category: specifies that an instance that is in this category is an implementation of the conductive interconnect element with user defined single transition;
connected_area_component_category: specifies that an instance that is in this category is an implementation of the connected area component;
contact_size_dependent_land_category: specifies that an instance that is in this category is an implementation of the contact size dependent land;
cutout_category: specifies that an instance that is in this category is an implementation of the cutout;
cutout_edge_segment_category: specifies that an instance that is in this category is an implementation of the cutout edge segment;
dielectric_material_passage_category: specifies that an instance that is in this category is an implementation of the dielectric material passage;
electrical_isolation_laminate_component_category: specifies that an instance that is in this category is an implementation of the electrical isolation laminate component;
embedded_physical_component_terminal_category: specifies that an instance that is in this category is an implementation of the embedded physical component terminal;
fiducial_category: specifies that an instance that is in this category is an implementation of the fiducial;
fill_area_category: specifies that an instance that is in this category is an implementation of the fill area;
inter_stratum_feature_category: specifies that an instance that is in this category is an implementation of the inter stratum feature;
interconnect_component_interface_terminal_category: specifies that an instance that is in this category is an implementation of the interconnect component interface terminal;
interconnect_component_join_terminal_category: specifies that an instance that is in this category is an implementation of the interconnect component join terminal;
interconnect_module_component_category: specifies that an instance that is in this category is an implementation of the interconnect module component;
interconnect_module_component_stratum_based_terminal_category: specifies that an instance that is in this category is an implementation of the interconnect module component stratum based terminal;
interconnect_module_component_surface_feature_category: specifies that an instance that is in this category is an implementation of the interconnect module component surface feature;
interconnect_module_component_terminal_category: specifies that an instance that is in this category is an implementation of the interconnect module component terminal;
interconnect_module_edge_category: specifies that an instance that is in this category is an implementation of the interconnect module edge;
interconnect_module_edge_segment_category: specifies that an instance that is in this category is an implementation of the interconnect module edge segment;
interconnect_module_macro_component_category: specifies that an instance that is in this category is an implementation of the interconnect module macro component;
interconnect_module_macro_component_join_terminal_category: specifies that an instance that is in this category is an implementation of the interconnect module macro component join terminal;
interface_access_material_removal_laminate_component_category: specifies that an instance that is in this category is an implementation of the interface access material removal feature;
interface_access_stratum_feature_template_component_category: specifies that an instance that is in this category is an implementation of the interface access stratum feature template component;
interface_component_category: specifies that an instance that is in this category is an implementation of the interface component;
interfacial_connection_category: specifies that an instance that is in this category is an implementation of the interfacial connection;
internal_probe_access_area_category: specifies that an instance that is in this category is an implementation of the internal probe access area;
laminate_component_category: specifies that an instance that is in this category is an implementation of the laminate component;
generic_laminate_text_component_category: specifies that an instance that is in this category is an implementation of the generic laminate text component;
laminate_text_string_component_category: specifies that an instance that is in this category is an implementation of the laminate text string component;
land_category: specifies that an instance that is in this category is an implementation of the land;
land_interface_terminal_category: specifies that an instance that is in this category is an implementation of the land interface terminal;
land_join_terminal_category: specifies that an instance that is in this category is an implementation of the land join terminal;
material_removal_laminate_component_category: specifies that an instance that is in this category is an implementation of the material removal laminate component;
minimally_defined_component_terminal_category: specifies that an instance that is in this category is an implementation of the minimally defined component terminal;
movable_packaged_component_join_terminal_category: specifies that an instance that is in this category is an implementation of the movable packaged component join terminal;
multi_layer_material_removal_laminate_component_category: specifies that an instance that is in this category is an implementation of the multi layer material removal laminate component;
multi_stratum_special_symbol_component_category: specifies that an instance that is in this category is an implementation of the multi layer stratum special symbol component;
non_conductive_base_blind_via_category: specifies that an instance that is in this category is an implementation of the non conductive base blind via;
packaged_component_category: specifies that an instance that is in this category is an implementation of the packaged component;
packaged_component_join_terminal_category: specifies that an instance that is in this category is an implementation of the packaged component join terminal;
packaged_connector_component_category: specifies that an instance that is in this category is an implementation of the packaged connector component;
packaged_connector_component_interface_terminal_category: specifies that an instance that is in this category is an implementation of the packaged connector component interface terminal;
partially_plated_cutout_category: specifies that an instance that is in this category is an implementation of the partially plated cutout;
partially_plated_interconnect_module_edge_category: specifies that an instance that is in this category is an implementation of the partially plated interconnect module edge;
physical_component_category: specifies that an instance that is in this category is an implementation of the physical component;
physical_connectivity_interrupting_cutout_category: specifies that an instance that is in this category is an implementation of the physical connectivity interrupting cutout;
physical_laminate_component_category: specifies that an instance that is in this category is an implementation of the physical laminate component;
physical_network_supporting_inter_stratum_feature_category: specifies that an instance that is in this category is an implementation of the physical network supporting inter stratum feature;
plated_conductive_base_blind_via_category: specifies that an instance that is in this category is an implementation of the plated conductive base blind via;
plated_cutout_category: specifies that an instance that is in this category is an implementation of the plated cutout;
plated_cutout_edge_segment_category: specifies that an instance that is in this category is an implementation of the plated cutout edge segment;
plated_interconnect_module_edge_category: specifies that an instance that is in this category is an implementation of the plated interconnect module edge;
plated_interconnect_module_edge_segment_category: specifies that an instance that is in this category is an implementation of the plated interconnect module edge segment;
plated_passage_category: specifies that an instance that is in this category is an implementation of the plated passage;
plated_passage_or_unsupported_passage_category: specifies that an instance that is in this category is an implementation of the plated passage or unsupported passage;
primary_stratum_indicator_symbol_category: specifies that an instance that is in this category is an implementation of the primary stratum indicator symbol;
printed_component_join_terminal_category: specifies that an instance that is in this category is an implementation of the printed component join terminal;
printed_connector_component_interface_terminal_category: specifies that an instance that is in this category is an implementation of the printed connector component interface terminal;
probe_access_area_category: specifies that an instance that is in this category is an implementation of the probe access area;
routed_interconnect_component_category: specifies that an instance that is in this category is an implementation of the routed interconnect component;
routed_physical_component_category: specifies that an instance that is in this category is an implementation of the routed physical component;
single_stratum_special_symbol_component_category: specifies that an instance that is in this category is an implementation of the single stratum special symbol component;
stratum_feature_category: specifies that an instance that is in this category is an implementation of the stratum feature;
stratum_feature_template_component_category: specifies that an instance that is in this category is an implementation of the stratum feature template component;
thermal_isolation_laminate_component_category: specifies that an instance that is in this category is an implementation of the thermal isolation laminate component;
unrouted_conductive_interconnect_element_category: specifies that an instance that is in this category is an implementation of the unrouted conductive interconnect element;
unsupported_passage_category: specifies that an instance that is in this category is an implementation of the unsupported passage;
unsupported_passage_dependent_land_category: specifies that an instance that is in this category is an implementation of the unsupported dependent land;
via_category: specifies that an instance that is in this category is an implementation of the via;
via_terminal_category: specifies that an instance that is in this category is an implementation of the via terminal.
The lam_product_design_object_category_or_group type allows for the designation of the data types lam_product_design_object_category, Stratum, and Group.
EXPRESS specification:
*)
TYPE
lam_product_design_object_category_or_group =
SELECT
(lam_product_design_object_category,
Stratum,
Group);
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
spacing_type =
ENUMERATION
OF
(nearest_boundary,
centroid,
furthest_boundary);
END_TYPE;
(*
Enumerated item definitions:
nearest_boundary: specifies that spacing is measured between nearest boundaries of the design items indicated;
centroid: specifies that spacing is measured between centroids of the design items indicated;
furthest_boundary: specifies that spacing is measured between furthest boundaries of the design items indicated.
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.
A Area_qualified_layout_spacing_requirement is a type of Layout_spacing_requirement that describes the physical spacing between one of an interconnect_module_cutout, an interconnect_module_fill_area, an interconnect_module_inter_stratum_feature, an interconnect_module_stratum_feature, or an interconnect_module_via, and another of these categories of design objects. This Application object qualifies the spacing requirement to apply within a given context as defined by a set of Stratum. The category names correspond to the category of equivalent application object names as described in Layout_spacing_requirement. This requirement shall be interpreted as applying to the categories of those objects.
NOTE A pair of categories is used for this requirement occurrence.
EXAMPLE 1 In domain terms, when a Via to Via spacing is to be greater than 5 mm, the encoding will be that the spacing between the design_object_category_1 whose value is interconnect_module_via and the design_object_category_2 whose value is interconnect_module_via shall be greater than 5 mm.
EXAMPLE 2 In domain terms, when the distance from a cutout to a trace must be greater than 5 mm, the encoding will be that the spacing between the design_object_category_1 whose value is interconnect_module_cutout and the design_object_category_2 whose value is interconnect_module_stratum_feature shall be greater than 5 mm.
EXPRESS specification:
*)
ENTITY Area_qualified_layout_spacing_requirement
SUBTYPE OF (Layout_spacing_requirement);
area_context : SET[1:?] OF Layout_spacing_contextual_area;
END_ENTITY;
(*
Attribute definitions:
area_context: specifies an Layout_spacing_contextual_area for the Area_qualified_layout_spacing_requirement. The area_context establishes a context within which the spacing requirement is to be met. There shall be one or more Layout_spacing_contextual_area for a Area_qualified_layout_spacing_requirement. The Layout_spacing_contextual_area may overlap. All Layout_spacing_contextual_area specified shall be in the same design.
EXPRESS specification:
*)
ENTITY Interconnect_module_constraint_region
SUBTYPE OF (Non_feature_shape_element);
keepout : BOOLEAN;
non_conformant_interconnect_module_design_object :
OPTIONAL
SET[1:?] OF interconnect_module_design_object_select;
SELF\Shape_element.associated_definition : Layered_interconnect_module_design_view;
design_specific_purpose : STRING;
associated_stratum_extent : SET[1:?] OF Inter_stratum_extent;
constrained_design_object_category : interconnect_module_design_object_category_or_group;
INVERSE
precedent_version_constraint_region : SET[0:1] OF Non_feature_shape_element_relationship FOR related;
requirement : SET[1:1] OF Requirement_assignment FOR assigned_to;
WHERE
WR1: NOT (SIZEOF(precedent_version_constraint_region) = 1) OR ('INTERCONNECT_PLACEMENT_REQUIREMENTS_ARM.INTERCONNECT_MODULE_CONSTRAINT_REGION'
IN TYPEOF(precedent_version_constraint_region[1]\Non_feature_shape_element_relationship.relating));
WR2: NOT EXISTS(SELF\Shape_element.description);
WR3: valid_non_conformant_design_object_context(non_conformant_interconnect_module_design_object, SELF\Shape_element.associated_definition);
END_ENTITY;
(*
Attribute definitions:
keepout: specifies if the meaning of the Interconnect_module_constraint_region is to describe that items shall be in the interior of the element_shape or shall be on the exterior of the element_shape. The value of TRUE states that objects in the constrained_design_object_category are not to be within the element_shape. The value of FALSE states that objects in the constrained_design_object_category are to be only within the element_shape.
non_conformant_interconnect_module_design_object: specifies the interconnect_module_design_object_select for the Interconnect_module_constraint_region. There shall be one or more interconnect_module_design_object_select for each Interconnect_module_constraint_region. The value of this attribute need not be specified.
associated_definition: an inherited attribute that shall have a value of type Layered_interconnect_module_design_view.
design_specific_purpose: specifies the string for the Interconnect_module_constraint_region. The design_specific_purpose identifies the purpose the enterprise defined for the Interconnect_module_constraint_region.
associated_stratum_extent: specifies the Inter_stratum_extent as the extent of Stratum for the Interconnect_module_constraint_region. There shall be one or more Inter_stratum_extent for an Interconnect_module_constraint_region. The Inter_stratum_extent shall all be for the same associated_definition.
constrained_design_object_category: specifies the interconnect_module_design_object_category for the Interconnect_module_constraint_region. There may be more than one interconnect_module_design_object_category for an Interconnect_module_constraint_region. The names shall be interpreted as the identification of Application Object categories to be constrained.
precedent_version_constraint_region: an attribute is an inverse relationship that specifies that the existence of the Interconnect_module_constraint_region is dependent on the existence of the Non_feature_shape_element_relationship that specifies the Interconnect_module_constraint_region as its related shape element. There shall be zero or one Non_feature_shape_element_relationship for an Interconnect_module_constraint_region. The usage of this relationship is to enable traceability to original Interconnect_module_constraint_region during design iterations.
NOTE Since the Interconnect_module_constraint_region is dependent on a specific Layered_interconnect_module_design_view, it is not possible to use the mechanism of associating one Interconnect_module_constraint_region with several Layered_interconnect_module_design_view, each of which is for a different design version. In addition, the non_conformant_interconnect_module_design_object is for objects within the associated_definition, which also precludes direct re-use of the same Interconnect_module_constraint_region. It is expected that only the first Interconnect_module_constraint_region populated would have an associated shape to eliminate the need for carrying redundant shape data.
requirement: an inverse relationship that specifies that the existence of the Interconnect_module_constraint_region is dependent on the existence of the Requirement_assignment that specifies the Interconnect_module_constraint_region as its assigned_to. There shall be exactly one Requirement_assignment for an Interconnect_module_constraint_region.
Formal propositions:
WR1: If precedent_version_constraint_region exists, it will refer Interconnect_module_constraint_region as relating.
WR2: The description shall not be populated.
WR3: Each non-conforming design object that is a Laminate_component shall be in the scope of the Interconnect_module_constraint_region.
A Layer_qualified_layout_spacing_requirement is a type of Layout_spacing_requirement that describes the physical spacing between one of an interconnect_module_cutout, an interconnect_module_fill_area, an interconnect_module_inter_stratum_feature, an interconnect_module_stratum_feature, or an interconnect_module_via, and another of these categories of design objects. This Application object qualifies the spacing requirement to apply within a given context as defined by a set of Stratum. The category names correspond to the category of equivalent application object names as described in Layout_spacing_requirement. This requirement shall be interpreted as applying to the categories of those objects.
NOTE A pair of categories is used for this requirement occurrence.
EXAMPLE 1 In domain terms, when a Via to Via spacing is to be greater than 5 mm, the encoding will be that the spacing between the design_object_category_1 whose value is interconnect_module_via and the design_object_category_2 whose value is interconnect_module_via shall be greater than 5 mm.
EXAMPLE 2 In domain terms, when the distance from a cutout to a trace must be greater than 5 mm, the encoding will be that the spacing between the design_object_category_1 whose value is interconnect_module_cutout and the design_object_category_2 whose value is interconnect_module_stratum_feature shall be greater than 5 mm.
EXPRESS specification:
*)
ENTITY Layer_qualified_layout_spacing_requirement
SUBTYPE OF (Layout_spacing_requirement);
layer_context : SET[1:?] OF Inter_stratum_extent;
END_ENTITY;
(*
Attribute definitions:
layer_context: specifies an Inter_stratum_extent for the Layer_qualified_layout_spacing_requirement. The layer_context establishes a context within which the spacing requirement is to be met. There shall be one or more Inter_stratum_extent for a Layer_qualified_layout_spacing_requirement. The Inter_stratum_extent may overlap. All Inter_stratum_extent specified shall be in the same design.
EXPRESS specification:
*)
ENTITY Layout_spacing_contextual_area
SUBTYPE OF (Non_feature_shape_element);
reference_surface : Interconnect_module_component_surface_feature;
SELF\Shape_element.associated_definition : Assembly_module_design_view;
WHERE
WR1: (SIZEOF(SELF\Non_feature_shape_element.element_shape) = 0) OR
(SIZEOF(QUERY(es <* SELF\Non_feature_shape_element.element_shape | NOT ('CONSTRUCTION_GEOMETRY_ARM.CONSTRUCTIVE_GEOMETRY'
IN TYPEOF(es)) )) = 0);
END_ENTITY;
(*
Attribute definitions:
reference_surface: specifies a role of the Interconnect_module_component_surface_feature for the Layout_spacing_contextual_area. The type of surface is determined by the definition of the Interconnect_module_component_surface_feature specified by reference_surface. The reference_surface conveys design intent to identify the component that implements the connectivity prescribed by the relevant member of Physical_connectivity_definition.
associated_definition: an inherited attribute that shall have a value of types Assembly_module_design_view.
Formal propositions:
WR1: The element_shape inherited from the Non_feature_shape_element shall be a Constructive_geometry.
A Layout_spacing_requirement is a type of Predefined_requirement_view_definition that describes the physical spacing requirement between one of an assembly_module_assembly_component, an assembly_module_component_feature, an interconnect_module_cutout, an interconnect_module_fill_area, an interconnect_module_design_intent_modification, an interconnect_module_inter_stratum_feature, an interconnect_module_cutout_edge_segment, an interconnect_module_interconnect_module_edge, an interconnect_module_interconnect_module_edge_segment, an interconnect_module_plated_cutout, an interconnect_module_plated_cutout_edge_segment, an interconnect_module_plated_interconnect_module_edge, an interconnect_module_plated_interconnect_module_edge_segment, an interconnect_module_plated_passage, a category consisting of the union of an interconnect_module_plated_passage category and an interconnect_module_plated_unsupported_passage category, an interconnect_module_unsupported_passage, an interconnect_module_stratum_feature, or an interconnect_module_via, and another of these categories of design objects. The requirement shall be imposed between the boundaries of members of the the relevant categories or between centroids. The category names correspond to the category of equivalent application object names.
NOTE 1 Support for requirements between boundaries and centroids is not supported by this part of ISO 10303.
EXAMPLE 1 Assembly_module_assembly_component corresponds to Assembly_component category. Assembly_module_component_feature corresponds to Component_feature category. Interconnect_module_cutout corresponds to Cutout category. Interconnect_module_inter_stratum_feature corresponds to Inter_stratum_feature category. Interconnect_module_stratum_feature corresponds to Stratum_feature category. Interconnect_module_via corresponds to Via category.
Any subtype of an item in a category shall qualify as part of that category.NOTE 2 This part of ISO 10303 supports several spacing requirements in this Application Object.
NOTE 3 A pair of categories is used for this requirement occurrence.
EXAMPLE 2 In domain terms, when a Via to Via spacing is to be greater than 5 mm, the encoding will be that the spacing between the design_object_category_1 whose value is interconnect_module_via and the design_object_category_2 whose value is interconnect_module_via shall be greater than 5 mm.
EXAMPLE 3 In domain terms, when the distance from a cutout to a trace must be greater than 5 mm, the encoding will be that the spacing between the design_object_category_1 whose value is interconnect_module_cutout and the design_object_category_2 whose value is interconnect_module_stratum_feature shall be greater than 5 mm.
EXPRESS specification:
*)
ENTITY Layout_spacing_requirement
SUBTYPE OF (Predefined_requirement_view_definition);
design_object_category_1 : lam_product_design_object_category_or_group;
design_object_category_2 : lam_product_design_object_category_or_group;
SELF\Predefined_requirement_view_definition.required_characteristic RENAMED spacing : Length_tolerance_characteristic;
of_spacing_type : spacing_type;
END_ENTITY;
(*
Attribute definitions:
design_object_category_1: specifies the lam_product_design_object_category_or_group for the Layout_spacing_requirement.
design_object_category_2: specifies the lam_product_design_object_category_or_group for the Layout_spacing_requirement.
spacing: an attribute inherited from the Predefined_requirement_view_definition supertype specifies a role of the Length_tolerance_characteristic for the Layout_spacing_requirement.
of_spacing_type: specifies the spacing_type for the Layout_spacing_requirement.
EXPRESS specification:
*)
ENTITY Layout_spacing_requirement_non_conforming_design_object;
non_conformant_design_object : SET[1:?] OF assembly_or_interconnect_design_object_select;
design_object_1 : assembly_or_interconnect_design_object_select;
design_object_2 : assembly_or_interconnect_design_object_select;
design_requirement : Layout_spacing_requirement;
violation_value :
OPTIONAL
Length_data_element;
violation_shape :
OPTIONAL
Geometric_model;
intersection_violation : LOGICAL;
WHERE
WR1: EXISTS(violation_value) OR EXISTS(violation_shape);
END_ENTITY;
(*
Attribute definitions:
non_conformant_design_object: specifies the assembly_or_interconnect_design_object_select for the Layout_spacing_requirement_non_conforming_design_object. There shall be one or more assembly_or_interconnect_design_object_select for each Layout_spacing_requirement_non_conforming_design_object.
design_object_1: specifies one role of the assembly_or_interconnect_design_object_select for the Layout_spacing_requirement_non_conforming_design_object.
design_object_2: specifies one role of the assembly_or_interconnect_design_object_select for the Layout_spacing_requirement_non_conforming_design_object.
design_requirement: specifies a role of the Layout_spacing_requirement for the Layout_spacing_requirement_non_conforming_design_object
violation_value: specifies a role of the Length_data_element for the Layout_spacing_requirement_non_conforming_design_object. The value of this attribute need not be specified.
violation_shape: specifies a role of the Geometric_model for the Layout_spacing_requirement_non_conforming_design_object. The value of this attribute need not be specified.
intersection_violation: specifies a logical value.
Formal propositions:
WR1: There shall exist violation_value or violation_shape, but not both.
EXPRESS specification:
*)
ENTITY Stratum_constraint_region
SUBTYPE OF (Non_feature_shape_element);
constrained_stratum : SET[1:?] OF Stratum;
design_specific_purpose : STRING;
keepout : BOOLEAN;
non_conformant_stratum :
OPTIONAL
SET[1:?] OF Stratum;
SELF\Shape_element.associated_definition : Layered_interconnect_module_design_view;
INVERSE
precedent_version_constraint_region : SET[0:1] OF Non_feature_shape_element_relationship FOR related;
requirement : SET[1:1] OF Requirement_assignment FOR assigned_to;
WHERE
WR1: NOT (SIZEOF(precedent_version_constraint_region) = 1) OR ('INTERCONNECT_PLACEMENT_REQUIREMENTS_ARM.STRATUM_CONSTRAINT_REGION'
IN TYPEOF(precedent_version_constraint_region[1]\Non_feature_shape_element_relationship.relating));
WR2: NOT EXISTS(SELF\Shape_element.description);
WR3: valid_non_conformant_stratum_context(non_conformant_stratum, SELF\Shape_element.associated_definition);
END_ENTITY;
(*
Attribute definitions:
constrained_stratum: specifies one role of the Stratum for the Stratum_constraint_region. Realized material shall not violate the constraint. There shall exist one or more Stratums for the Stratum_constraint_region.
NOTE 1 In a CAD system is it usual industrial practice for some small geometric overlap of design versus constraints due to construction geometry and side effects associated therein. This Application Object constrains finished material.
design_specific_purpose: specifies a STRING defined by the user organization to convey the purpose of the constraint. When unused, the value of the STRING shall be " ".
NOTE 2 Information exchange agreements between industrial partners may use this attribute as necessary.
keepout: specifies a BOOLEAN value. A value of TRUE indicates that realized material shall be excluded from the region. A value of FALSE indicates that realized material shall be contained only within the region.
non_conformant_stratum: specifies one role of the Stratum for the Stratum_constraint_region. Stratum specified as non_conformant_stratum violate the constraint. There may be one or more Stratums for the Stratum_constraint_region. The value of this attribute need not be specified.
NOTE 3 The number of non_conformant_stratum will likely vary during typical design flow. A design organization may choose to establish metrics based on the design flow for the interconnect products being designed. The context of the Layered_interconnect_module_design_view specified by scope may be used as a mechanism to retrieve the relevant context and metric. More detailed metrics than conformance are outside the scope of this part of ISO 10303.
associated_definition: an inherited attribute that shall have a value of type Layered_interconnect_module_design_view. This value establishes the design context for the Stratum_constraint_region.
precedent_version_constraint_region: an inverse relationship that specifies that the existence of the Stratum_constraint_region is dependent on the existence of the Non_feature_shape_element_relationship that specifies the Stratum_constraint_region as its related. There shall be no more than one Non_feature_shape_element_relationship for an Stratum_constraint_region. The precedent_version_constraint_region is included to support the case that there are multiple versions of the design included in one database and specifies the constraint region assigned to the previous version of the design if there is a difference between the constraint regions for the previous design version and the current design version.
NOTE 4 Usual industrial practice is to focus on one version of an interconnect at a time and therefore this attribute is not usually populated.
requirement: an inverse relationship that specifies that the existence of the Stratum_constraint_region is dependent on the existence of the Requirement_assignment that specifies the Stratum_constraint_region as its assigned_to. There shall be exactly one Requirement_assignment for a Stratum_constraint_region. A requirement provides the semantic or rationale behind the constraint, usually for archival purposes.
Formal propositions:
WR1: If there is a precedent_version_constraint_region provided then a Stratum_constraint_region shall be related to this Stratum_constraint_region by the relationship.
WR2: The description shall not be populated.
WR3: The Stratum being constrained by the region shall contribute to the definition of the Layered_interconnect_module_design_view referenced by the associated_definition.
This subclause specifies the ARM subtype constraints for this module. Each subtype constraint places constraints on the possible super-type / subtype instantiations. The ARM subtype constraints and definitions are specified below.
The ipr_predefined_requirement_view_definition_subtypes constraint specifies a constraint that applies to instances of Predefined_requirement_view_definition and enforces the rule that its subtypes Assembly_spacing_requirement, Assembly_group_spacing_requirement, Item_restricted_requirement and Layout_spacing_requirement are exclusive.
EXPRESS specification:
*)
SUBTYPE_CONSTRAINT ipr_predefined_requirement_view_definition_subtypes FOR Predefined_requirement_view_definition;
ONEOF (Assembly_spacing_requirement,
Assembly_group_spacing_requirement,
Item_restricted_requirement,
Layout_spacing_requirement);
END_SUBTYPE_CONSTRAINT;
(*
The ipr_non_feature_shape_element_subtypes constraint specifies a constraint that applies to instances of Non_feature_shape_element and enforces the rule that its subtypes Seating_plane, Interconnect_module_constraint_region, Stratum_constraint_region, Reference_graphic_registration_mark, Mounting_restriction_area and Mounting_restriction_volume are exclusive.
EXPRESS specification:
*)
SUBTYPE_CONSTRAINT ipr_non_feature_shape_element_subtypes FOR Non_feature_shape_element;
ONEOF (Seating_plane,
Interconnect_module_constraint_region,
Stratum_constraint_region,
Reference_graphic_registration_mark,
Mounting_restriction_area,
Mounting_restriction_volume);
END_SUBTYPE_CONSTRAINT;
(*
This subclause specifies the ARM functions for this module. The ARM functions and definitions are specified below.
EXPRESS specification:
*)
FUNCTION valid_non_conformant_design_object_context (input1 : SET[0:?] OF interconnect_module_design_object_select; input2 : Layered_interconnect_module_design_view) : BOOLEAN;
LOCAL vdr : SET OF Assembly_component_relationship := []; valid : BOOLEAN := TRUE; pvd : SET OF Product_view_definition := []; END_LOCAL; REPEAT i := 1 to HIINDEX(input1); IF ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.LAMINATE_COMPONENT' IN TYPEOF(input1[i])) THEN vdr := input1[i]\Assembly_component.occurrence_contexts; pvd := []; REPEAT j := 1 to HIINDEX(vdr); pvd := pvd + vdr[j]\Product_occurrence_definition_relationship.relating_view; END_REPEAT; IF NOT (input2 IN pvd) THEN valid := FALSE; END_IF; END_IF; END_REPEAT; RETURN(valid);
END_FUNCTION;
(*
Argument definitions:
input1: the specified set of interconnect_module_design_object_select.
input2: the specified Layered_interconnect_module_design_view.
EXPRESS specification:
*)
FUNCTION valid_non_conformant_stratum_context (input1 : SET[0:?] OF Stratum; input2 : Layered_interconnect_module_design_view) : BOOLEAN;
LOCAL imsar : SET OF Interconnect_module_stratum_assembly_relationship := []; valid : BOOLEAN := TRUE; i, j : INTEGER := 0; pvd : SET OF Product_view_definition := []; END_LOCAL; REPEAT i := 1 to HIINDEX(input1); imsar := input1[i]\Stratum.assembly; pvd := []; REPEAT j := 1 to HIINDEX(pvd); pvd := pvd + imsar[j]\Interconnect_module_stratum_assembly_relationship.assembly; END_REPEAT; IF NOT (input2 IN pvd) THEN valid := FALSE; END_IF; END_REPEAT; RETURN(valid);
END_FUNCTION;
(*
Argument definitions:
input1: the specified set of Stratums.
input2: the specified Layered_interconnect_module_design_view.
*)
END_SCHEMA; -- Interconnect_placement_requirements_arm
(*
© ISO 2018 — All rights reserved