Application module: Interconnect placement requirements | ISO/TS 10303-1690:2018-11(E) © ISO |
(*
ISO/TC 184/SC 4/WG 12 N9436 - ISO/TS 10303-1690 Interconnect placement requirements - EXPRESS ARM
Supersedes
ISO/TC 184/SC 4/WG 12 N8161
*)
SCHEMA Interconnect_placement_requirements_arm;
USE FROM
Layered_interconnect_module_with_printed_component_design_arm;
-- ISO/TS 10303-1700
TYPE assembly_or_interconnect_design_object_select =
EXTENSIBLE
SELECT
(Assembly_component,
Component_feature,
interconnect_module_design_object_select);
END_TYPE;
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;
TYPE interconnect_module_design_object_category_or_group =
SELECT
(interconnect_module_design_object_category,
Group);
END_TYPE;
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;
TYPE ipr_requirement_assignment_item =
EXTENSIBLE
GENERIC_ENTITY
SELECT
BASED_ON
requirement_assignment_item
WITH
(Interconnect_module_constraint_region,
Stratum_constraint_region);
END_TYPE;
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;
TYPE lam_product_design_object_category_or_group =
SELECT
(lam_product_design_object_category,
Stratum,
Group);
END_TYPE;
TYPE spacing_type =
ENUMERATION
OF
(nearest_boundary,
centroid,
furthest_boundary);
END_TYPE;
ENTITY Area_qualified_layout_spacing_requirement
SUBTYPE OF (Layout_spacing_requirement);
area_context : SET[1:?] OF Layout_spacing_contextual_area;
END_ENTITY;
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;
ENTITY Layer_qualified_layout_spacing_requirement
SUBTYPE OF (Layout_spacing_requirement);
layer_context : SET[1:?] OF Inter_stratum_extent;
END_ENTITY;
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;
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;
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;
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;
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;
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;
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;
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;
END_SCHEMA; -- Interconnect_placement_requirements_arm
© ISO 2018 — All rights reserved