Application module: Layered interconnect module design | ISO/TS 10303-1698:2018-11(E) © ISO |
(*
ISO/TC 184/SC 4/WG 12 N9442 - ISO/TS 10303-1698 Layered interconnect module design - EXPRESS ARM
Supersedes
ISO/TC 184/SC 4/WG 12 N8170
*)
SCHEMA Layered_interconnect_module_design_arm;
USE FROM
Component_grouping_arm;
-- ISO/TS 10303-1656
USE FROM
Edge_shape_feature_arm;
-- ISO/TS 10303-1673
USE FROM
Footprint_definition_arm;
-- ISO/TS 10303-1646
USE FROM
Assembly_component_placement_requirements_arm;
-- ISO/TS 10303-1634
USE FROM
Land_arm;
-- ISO/TS 10303-1692
USE FROM
Layered_interconnect_module_with_printed_component_design_arm;
-- ISO/TS 10303-1700
REFERENCE FROM
Assembly_component_arm -- ISO/TS 10303-1802
(get_assemblies);
REFERENCE FROM
Support_resource_arm -- ISO/TS 10303-1800
(bag_to_set);
REFERENCE FROM
Physical_unit_2d_design_view_arm -- ISO/TS 10303-1724
(pu2dv_has_shape,
pu2dv_typeof);
CONSTANT
Pre_defined_physical_network_group_relation_types : SET[0:?] OF STRING :=
[
'group to higher order group',
'group to higher ranking group',
'element to ordered multiple line bus'];
Pre_defined_physical_network_group_types : SET[0:?] OF STRING :=
[
'differential pair',
'balanced length',
'coaxial group',
'multi line bus'];
END_CONSTANT;
TYPE area_component_templates =
SELECT
(Stratum_feature_template,
Fill_area_template);
END_TYPE;
TYPE bare_die_component_or_packaged_component =
EXTENSIBLE
GENERIC_ENTITY
SELECT;
END_TYPE;
TYPE bare_die_terminal_or_packaged_part_terminal =
EXTENSIBLE
GENERIC_ENTITY
SELECT;
END_TYPE;
TYPE component_feature_or_stratum_surface =
EXTENSIBLE
GENERIC_ENTITY
SELECT
(Component_feature,
Stratum_surface);
END_TYPE;
TYPE design_or_documentation_stratum =
SELECT
(Design_layer_stratum,
Documentation_layer_stratum);
END_TYPE;
TYPE limd_documented_element_select =
SELECT
BASED_ON
documented_element_select
WITH
(stratum_concept);
END_TYPE;
TYPE limd_external_identification_item =
SELECT
BASED_ON
external_identification_item
WITH
(Externally_defined_physical_network_group,
Externally_defined_physical_network_group_element_relationship,
Stratum_feature_based_derived_pattern,
Stratum,
Laminate_component);
END_TYPE;
TYPE limd_groupable_item =
SELECT
BASED_ON
groupable_item
WITH
(Generic_physical_network,
Stratum);
END_TYPE;
TYPE limd_requirement_assignment_item =
SELECT
BASED_ON
requirement_assignment_item
WITH
(Layered_interconnect_module_design_view,
Stratum_feature_conductive_join);
END_TYPE;
TYPE limd_restriction_basis_item =
SELECT
BASED_ON
restriction_basis_item
WITH
(stratum_concept);
END_TYPE;
TYPE limd_sf_shape_select =
EXTENSIBLE
GENERIC_ENTITY
SELECT;
END_TYPE;
TYPE limd_stratum_shape_model_select =
EXTENSIBLE
GENERIC_ENTITY
SELECT;
END_TYPE;
TYPE limd_usage_concept =
SELECT
BASED_ON
usage_concept
WITH
(Component_termination_passage_template_terminal,
Via_template_terminal);
END_TYPE;
TYPE material_or_specification =
SELECT
(Predefined_requirement_view_definition,
Material_identification);
END_TYPE;
TYPE material_removal_feature_template_or_parametric_template =
SELECT
(Material_removal_feature_template,
Parametric_template);
END_TYPE;
TYPE special_symbol_component =
SELECT
(Single_stratum_special_symbol_component,
Multi_stratum_special_symbol_component);
END_TYPE;
TYPE stratum_concept =
EXTENSIBLE
GENERIC_ENTITY
SELECT
(Laminate_component,
Inter_stratum_feature,
Stratum_feature,
Stratum,
Stratum_surface,
Structured_layout_component);
END_TYPE;
TYPE stratum_feature_or_stratum =
SELECT
(Stratum_feature,
Stratum);
END_TYPE;
TYPE stratum_feature_template_component_or_stratum =
SELECT
(Stratum_feature_template_component,
Stratum);
END_TYPE;
TYPE stratum_feature_template_or_parametric_template =
SELECT
(Stratum_feature_template,
Parametric_template);
END_TYPE;
TYPE stratum_surface_designation =
ENUMERATION
OF
(average_surface,
primary_surface,
secondary_surface);
END_TYPE;
TYPE terminal_or_inter_stratum_feature =
EXTENSIBLE
GENERIC_ENTITY
SELECT
(Embedded_physical_component_terminal,
Inter_stratum_feature,
Interconnect_module_terminal,
Printed_component_join_terminal);
END_TYPE;
ENTITY Additive_laminate_text_component
SUBTYPE OF (Generic_laminate_text_component);
stratum_feature_implementation : SET[1:?] OF Stratum_feature;
WHERE
WR1: SIZEOF(QUERY(sf <* stratum_feature_implementation | sf.associated_definition :<>: stratum_feature_implementation[1].associated_definition))
= 0;
END_ENTITY;
ENTITY Adjacent_stratum_surface_embedded_physical_component_surface_definition;
name : STRING;
precedent_item : component_feature_or_stratum_surface;
subsequent_item : component_feature_or_stratum_surface;
UNIQUE
UR1: name;
UR2: precedent_item, subsequent_item;
WHERE
WR1: precedent_item <> subsequent_item;
WR2: NOT ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.COMPONENT_FEATURE' IN TYPEOF(precedent_item)) OR
(SIZEOF(['LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.BARE_DIE_SURFACE',
'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.PACKAGE_BODY_SURFACE',
'INTERCONNECT_MODULE_USAGE_VIEW_ARM.INTERCONNECT_MODULE_SECONDARY_SURFACE'] * TYPEOF(precedent_item.definition)) = 1);
WR3: NOT ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.COMPONENT_FEATURE' IN TYPEOF(subsequent_item)) OR
(SIZEOF(['LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.BARE_DIE_SURFACE',
'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.PACKAGE_BODY_SURFACE',
'INTERCONNECT_MODULE_USAGE_VIEW_ARM.INTERCONNECT_MODULE_PRIMARY_SURFACE'] * TYPEOF(subsequent_item.definition)) = 1);
WR4: NOT ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_SURFACE' IN TYPEOF(precedent_item)) OR
(precedent_item.name = stratum_surface_designation.secondary_surface);
WR5: NOT ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_SURFACE' IN TYPEOF(subsequent_item)) OR
(precedent_item.name = stratum_surface_designation.primary_surface);
END_ENTITY;
ENTITY Area_component
SUPERTYPE OF
(Connected_area_component)
SUBTYPE OF (Stratum_feature_template_component);
explicitly_created : BOOLEAN;
is_base : BOOLEAN;
replaced_component :
OPTIONAL
Area_component;
SELF\Definition_based_product_occurrence.derived_from : area_component_templates;
DERIVE
is_final : LOGICAL := (SIZEOF(replaced_by) = 0);
INVERSE
replaced_by : SET[0:?] OF Area_component FOR replaced_component;
WHERE
WR1: NOT((is_final AND pu2dv_has_shape(SELF)) XOR ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE' IN TYPEOF(implementation_or_resident_stratum)));
WR2: is_final OR (SIZEOF(QUERY(rp <* replaced_by | SELF\Stratum_feature_template_component.resident_stratum :<>: get_resident_stratum(rp)))
= 0);
WR3: NOT(SELF IN replaced_by);
WR4: NOT(replaced_component IN replaced_by);
WR5: is_final XOR (SIZEOF(USEDIN(SELF,'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.MATERIAL_REMOVAL_LAMINATE_COMPONENT.DESIGN_INTENT'))
> 0);
WR6: NOT EXISTS(replaced_component) OR
(NOT (SIZEOF(replaced_by) > 0) OR
((SIZEOF(QUERY(rb <* replaced_by |
(acyclic_area_component(SELF,[rb], 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.AREA_COMPONENT')))))
= (SIZEOF(replaced_by))
)
);
WR7: pu2dv_has_shape(SELF) OR ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM' IN TYPEOF(implementation_or_resident_stratum));
WR8: NOT(SIZEOF(replaced_by) > 0) OR ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM' IN TYPEOF(implementation_or_resident_stratum));
WR9: NOT is_base OR VALUE_IN(pu2dv_typeof(SELF), 'CONSTRUCTIVE_SOLID_GEOMETRY_2D_ARM.SINGLE_BOUNDARY_CSG_2D_MODEL');
END_ENTITY;
ENTITY Breakout_occurrence
SUBTYPE OF (Footprint_occurrence);
SELF\Definition_based_product_occurrence.derived_from : Breakout_footprint_definition;
associated_footprint : Footprint_occurrence;
WHERE
WR1: associated_footprint <> SELF;
WR2: derived_from.reference_footprint = associated_footprint.derived_from;
END_ENTITY;
ENTITY Component_termination_passage
SUBTYPE OF (Plated_passage);
SELF\Definition_based_product_occurrence.derived_from : Component_termination_passage_template;
INVERSE
access_mechanism : SET[1:?] OF Component_termination_passage_join_terminal FOR associated_definition;
interface_access_mechanism : Component_termination_passage_interface_terminal FOR associated_definition;
END_ENTITY;
ENTITY Component_termination_passage_interface_terminal
SUBTYPE OF (Laminate_component_interface_terminal);
SELF\Component_feature.definition : Component_termination_passage_template_interface_terminal;
SELF\Component_feature.associated_definition : Component_termination_passage;
WHERE
WR1: NOT EXISTS(SELF\Shape_element.description);
END_ENTITY;
ENTITY Component_termination_passage_join_terminal
SUBTYPE OF (Laminate_component_join_terminal);
SELF\Component_feature.definition : Component_termination_passage_template_join_terminal;
SELF\Component_feature.associated_definition : Component_termination_passage;
WHERE
WR1: NOT EXISTS(SELF\Shape_element.description);
END_ENTITY;
ENTITY Conductive_filled_area
SUPERTYPE OF
(Connected_filled_area)
SUBTYPE OF (Stratum_feature);
WHERE
WR1: NOT EXISTS(SELF\Shape_element.description);
END_ENTITY;
ENTITY Conductive_interconnect_element
ABSTRACT SUPERTYPE
OF (ONEOF (Unrouted_conductive_interconnect_element,
Conductive_interconnect_element_with_pre_defined_transitions))
SUBTYPE OF (Stratum_feature_template_component);
INVERSE
access_mechanisms : SET[2:?] OF Conductive_interconnect_element_terminal FOR associated_definition;
connected_points : SET[1:?] OF Conductive_interconnect_element_terminal_link FOR associated_element;
WHERE
WR1: NOT EXISTS(SELF\Product_view_definition.name);
WR2: NOT('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.PROBE_ACCESS_AREA' IN TYPEOF(SELF));
WR3: NOT('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.FIDUCIAL' IN TYPEOF(SELF));
WR4: correlated_terminals(SELF\Conductive_interconnect_element.access_mechanisms,
connected_points);
WR5: (1 + SIZEOF(connected_points)) = limd_get_sz_cp(connected_points);
WR6: NOT('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.AREA_COMPONENT' IN TYPEOF(SELF));
END_ENTITY;
ENTITY Conductive_interconnect_element_terminal
SUBTYPE OF (Laminate_component_feature);
SELF\Component_feature.associated_definition : Conductive_interconnect_element;
connection_area :
OPTIONAL
SET[1:1] OF Connection_zone_in_design_view;
location : Layer_connection_point;
UNIQUE
UR1: SELF\Shape_element.element_name, associated_definition;
WHERE
WR1: NOT EXISTS(SELF\Shape_element.description);
END_ENTITY;
ENTITY Conductive_interconnect_element_terminal_link;
associated_element : Conductive_interconnect_element;
precedent_point : Conductive_interconnect_element_terminal;
subsequent_point : Conductive_interconnect_element_terminal;
UNIQUE
UR1: precedent_point, subsequent_point;
WHERE
WR1: precedent_point <> subsequent_point;
WR2: precedent_point.associated_definition = associated_element;
WR3: subsequent_point.associated_definition = associated_element;
WR4: acyclic_conductive_interconnect_element_terminal_link(SELF,
[subsequent_point],
'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.CONDUCTIVE_INTERCONNECT_ELEMENT_TERMINAL_LINK');
END_ENTITY;
ENTITY Conductive_interconnect_element_with_pre_defined_transitions
SUBTYPE OF (Conductive_interconnect_element);
centreline_shape : Path_area_with_parameters;
SELF\Definition_based_product_occurrence.derived_from : Trace_template;
SELF\Stratum_feature_template_component.implementation_or_resident_stratum : Stratum_feature;
WHERE
WR1: SIZEOF(connected_points) = SIZEOF(SELF\Conductive_interconnect_element.access_mechanisms) - 1;
WR2: SIZEOF(['LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.CONDUCTOR',
'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.CONDUCTIVE_FILLED_AREA'] *
TYPEOF(SELF\Stratum_feature_template_component.implementation_or_resident_stratum)) = 1;
WR3: centreline_shape.parameters = derived_from.trace_style;
WR4: SIZEOF(QUERY(ciet <* SELF\Conductive_interconnect_element.access_mechanisms |
NOT(ciet.location.resident_design_layer_stratum =
SELF\Stratum_feature_template_component.implementation_or_resident_stratum.associated_definition)
)) = 0;
END_ENTITY;
ENTITY Conductor
SUBTYPE OF (Stratum_feature);
SELF\Stratum_feature.resident_stratum : Design_layer_stratum;
implementation_requirement : SET[1:?] OF Intra_stratum_join_relationship;
INVERSE
join_component : SET[0:?] OF Single_stratum_printed_component FOR stratum_feature_implementation;
WHERE
WR1: NOT EXISTS(SELF\Shape_element.description);
WR2: SIZEOF(implementation_requirement) - SIZEOF(join_component) = 1;
WR3: (SIZEOF(join_component) = 0) OR
(SIZEOF(QUERY(jc <* join_component |
('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.TIEBAR_PRINTED_COMPONENT' IN TYPEOF(jc\Assembly_component.occurrence_contexts[1]\Product_occurrence_definition_relationship.relating_view))
AND
(SIZEOF(jc\Single_stratum_printed_component.stratum_feature_implementation) :<>: 1)
)) = 0);
END_ENTITY;
ENTITY Connected_area_component
SUBTYPE OF (Area_component);
associated_layer_connection_point : SET[1:?] OF Layer_connection_point;
END_ENTITY;
ENTITY Connected_filled_area
SUBTYPE OF (Conductive_filled_area);
SELF\Stratum_feature.resident_stratum : Design_layer_stratum;
implementation_requirement : SET[1:?] OF Intra_stratum_join_relationship;
INVERSE
join_component : SET[0:?] OF Single_stratum_printed_component FOR stratum_feature_implementation;
WHERE
WR1: SIZEOF(implementation_requirement) - SIZEOF(join_component) = 1;
WR2: (SIZEOF(join_component) = 0) OR
(SIZEOF(QUERY(jc <* join_component |
('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.TIEBAR_PRINTED_COMPONENT' IN TYPEOF(jc\Assembly_component.occurrence_contexts[1]\Product_occurrence_definition_relationship.relating_view))
AND
(SIZEOF(jc\Single_stratum_printed_component.stratum_feature_implementation) :<>: 1)
)) = 0);
END_ENTITY;
ENTITY Cutout
SUPERTYPE OF
(ONEOF (Physical_connectivity_interrupting_cutout,
Plated_cutout,
Partially_plated_cutout))
SUBTYPE OF (Inter_stratum_feature);
vertical_reference :
OPTIONAL
Interconnect_module_edge;
WHERE
WR1: NOT EXISTS(SELF\Product_view_definition.name);
WR2: SIZEOF(QUERY(shape <* SELF\Inter_stratum_feature.derived_from\Geometric_template.shapes |
NOT ('CONSTRUCTIVE_SOLID_GEOMETRY_2D_ARM.SINGLE_BOUNDARY_CSG_2D_MODEL' IN TYPEOF(shape)))) = 0;
WR3: EXISTS(SELF\Inter_stratum_feature.vertical_extent) XOR EXISTS(vertical_reference);
END_ENTITY;
ENTITY Cutout_edge_segment
SUPERTYPE OF
(Plated_cutout_edge_segment)
SUBTYPE OF (Inter_stratum_feature);
composed_cutout : Cutout;
start_vertex : Edge_segment_vertex;
end_vertex : Edge_segment_vertex;
SELF\Inter_stratum_feature.derived_from : Inter_stratum_feature_edge_segment_template;
WHERE
WR1: start_vertex :<>: end_vertex;
END_ENTITY;
ENTITY Dependently_located_layer_connection_point
SUBTYPE OF (Layer_connection_point);
associated_design_object : terminal_or_inter_stratum_feature;
reference_zone :
OPTIONAL
Connection_zone_in_design_view;
END_ENTITY;
ENTITY Derived_stratum
SUBTYPE OF (Stratum);
derived_from : design_or_documentation_stratum;
END_ENTITY;
ENTITY Design_layer_stratum
SUBTYPE OF (Stratum);
primary_design_layer_stratum : BOOLEAN;
INVERSE
existence_dependence : SET[1:?] OF Layer_connection_point FOR resident_design_layer_stratum;
WHERE
WR1: (NOT (primary_design_layer_stratum) AND (SIZEOF(QUERY(imps <* USEDIN(SELF,
'DESIGN_SPECIFIC_ASSIGNMENT_TO_INTERCONNECT_USAGE_VIEW_ARM.STRATUM_CONCEPT_TO_PHYSICAL_USAGE_VIEW_ASSIGNMENT.' + 'ASSIGNED_DESIGN_OBJECT')
| ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.INTERCONNECT_MODULE_PRIMARY_SURFACE' IN TYPEOF(imps.defined_part_feature)))) =
0)) OR ((primary_design_layer_stratum) AND (SIZEOF(QUERY(imps <* USEDIN(SELF,
'DESIGN_SPECIFIC_ASSIGNMENT_TO_INTERCONNECT_USAGE_VIEW_ARM.STRATUM_CONCEPT_TO_PHYSICAL_USAGE_VIEW_ASSIGNMENT.' + 'ASSIGNED_DESIGN_OBJECT')
| ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.INTERCONNECT_MODULE_PRIMARY_SURFACE' IN TYPEOF(imps.defined_part_feature)))) =
1));
WR2: 'FABRICATION_TECHNOLOGY_ARM.DESIGN_LAYER_TECHNOLOGY' IN TYPEOF(SELF\Stratum.of_technology);
END_ENTITY;
ENTITY Dielectric_material_passage
SUBTYPE OF (Inter_stratum_feature);
feature_material :
OPTIONAL
material_or_specification;
precedent_passage : Cutout;
WHERE
WR1: NOT EXISTS(SELF\Product_view_definition.name);
END_ENTITY;
ENTITY Documentation_layer_stratum
SUBTYPE OF (Stratum);
WHERE
WR1: 'FABRICATION_TECHNOLOGY_ARM.DOCUMENTATION_LAYER_TECHNOLOGY' IN TYPEOF(SELF\Stratum.of_technology);
WR2: NOT(SIZEOF(SELF\Stratum.base_component) = 1) OR
(NOT(SELF\Stratum.of_technology\Documentation_layer_technology.pre_defined_documentation_layer_purpose =
predefined_documentation_layer_purpose.soldermask) OR (SIZEOF(get_mrlc_not_for_base(SELF, base_component)) = 0));
END_ENTITY;
ENTITY Electrical_isolation_laminate_component
SUBTYPE OF (Material_removal_laminate_component);
SELF\Definition_based_product_occurrence.derived_from : Electrical_isolation_removal_template;
END_ENTITY;
ENTITY Embedded_physical_component_terminal
SUBTYPE OF (Laminate_component_join_terminal);
SELF\Component_feature.definition : bare_die_terminal_or_packaged_part_terminal;
SELF\Component_feature.associated_definition : bare_die_component_or_packaged_component;
WHERE
WR1: NOT EXISTS(SELF\Shape_element.description);
END_ENTITY;
ENTITY Explicitly_located_layer_connection_point
SUBTYPE OF (Layer_connection_point);
END_ENTITY;
ENTITY Externally_defined_physical_network_group
SUBTYPE OF (Physical_network_group);
INVERSE
source : External_source_identification FOR item;
WHERE
WR1: NOT (SELF\Group.membership_meaning IN Pre_defined_physical_network_group_types);
END_ENTITY;
ENTITY Externally_defined_physical_network_group_element_relationship
SUBTYPE OF (Physical_network_group_element_relationship);
INVERSE
source : External_source_identification FOR item;
WHERE
WR1: NOT (SELF\Group_relationship.relation_type IN Pre_defined_physical_network_group_relation_types);
END_ENTITY;
ENTITY Fiducial
SUBTYPE OF (Laminate_component);
END_ENTITY;
ENTITY Fiducial_stratum_feature
SUBTYPE OF (Stratum_feature);
END_ENTITY;
ENTITY Footprint_occurrence
SUBTYPE OF (Structured_layout_component);
SELF\Definition_based_product_occurrence.derived_from : Generic_footprint_definition;
END_ENTITY;
ENTITY Footprint_occurrence_sub_assembly_relationship
SUBTYPE OF (Structured_layout_component_sub_assembly_relationship);
SELF\Structured_layout_component_sub_assembly_relationship.relating_view : Footprint_occurrence;
SELF\Structured_layout_component_sub_assembly_relationship.related_view : Laminate_component;
SELF\Structured_layout_component_sub_assembly_relationship.first_location RENAMED terminal_location : Part_feature_based_template_location;
SELF\Structured_layout_component_sub_assembly_relationship.second_location RENAMED sub_assembly_reference_designation : Template_location_in_structured_template;
UNIQUE
UR1: sub_assembly_reference_designation, relating_view, terminal_location;
WHERE
WR1: terminal_location.assembly :=: relating_view.derived_from;
WR2: terminal_location.template :=: sub_assembly_reference_designation.assembly;
WR3: 'LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.PADSTACK_DEFINITION' IN TYPEOF(sub_assembly_reference_designation.assembly);
END_ENTITY;
ENTITY Generic_laminate_text_component
ABSTRACT SUPERTYPE
OF (ONEOF (Additive_laminate_text_component,
Material_removal_laminate_text_component))
SUBTYPE OF (Laminate_component);
SELF\Definition_based_product_occurrence.derived_from : Part_text_template;
DERIVE
of_character : label1 := derived_from\Part_text_template.of_character\Character_glyph_symbol.character;
WHERE
WR1: NOT EXISTS(SELF\Product_view_definition.name);
END_ENTITY;
ENTITY Generic_physical_network
ABSTRACT SUPERTYPE
OF (ONEOF (Unrouted_physical_network,
Routed_physical_network));
name : STRING;
current_associated_definition : Layered_interconnect_module_design_view;
prior_associated_definition :
OPTIONAL
SET[1:?] OF Layered_interconnect_module_design_view;
connectivity_requirement_element : SET[1:?] OF Laminate_component_join_terminal;
reference_connected_terminals :
OPTIONAL
Part_connected_terminals_definition;
unrouted_connectivity_requirement_element :
OPTIONAL
SET[1:?] OF Unrouted_join_relationship;
UNIQUE
UR1: name, current_associated_definition;
WHERE
WR1: NOT (EXISTS(prior_associated_definition)) OR NOT (current_associated_definition IN prior_associated_definition);
END_ENTITY;
ENTITY Inter_stratum_extent
SUBTYPE OF (Part_definition_relationship);
SELF\View_definition_relationship.relating_view RENAMED from_stratum : Stratum;
SELF\View_definition_relationship.related_view RENAMED to_stratum : Stratum;
included_stratum : SET[1:?] OF Stratum;
WHERE
WR1: NOT EXISTS(SELF\View_definition_relationship.relation_type);
WR2: from_stratum IN included_stratum;
WR3: to_stratum IN included_stratum;
WR4: EXISTS(from_stratum\Stratum.assembly[1]\Interconnect_module_stratum_assembly_relationship.assembly\Layered_interconnect_module_design_view.used_stack_model);
END_ENTITY;
ENTITY Inter_stratum_feature
ABSTRACT SUPERTYPE
OF (ONEOF (Unsupported_passage,
Plated_inter_stratum_feature))
SUBTYPE OF (Laminate_component);
feature_of_size : BOOLEAN;
vertical_extent :
OPTIONAL
Passage_technology_allocation_to_stack_model;
SELF\Definition_based_product_occurrence.derived_from : Inter_stratum_feature_template;
WHERE
WR1: NOT EXISTS(vertical_extent) OR (SIZEOF(QUERY(pvd <* get_assemblies(SELF) |
NOT(('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.LAYERED_INTERCONNECT_MODULE_DESIGN_VIEW' IN TYPEOF(pvd)) AND
(vertical_extent\Stratum_sub_stack.associated_stackup =
pvd\Layered_interconnect_module_design_view.used_stack_model))
)) = 0);
END_ENTITY;
ENTITY Inter_stratum_join_implementation
ABSTRACT SUPERTYPE
OF (ONEOF (Physical_network_supporting_stratum_feature_conductive_join,
Physical_network_supporting_inter_stratum_feature));
topological_requirement : Inter_stratum_join_relationship;
END_ENTITY;
ENTITY Inter_stratum_join_relationship
SUBTYPE OF (Routed_join_relationship);
points_to_be_connected : SET[2:?] OF Layer_connection_point;
DERIVE
associated_stratum : BAG[0:?] OF Design_layer_stratum := limd_get_lcp_resident_stratum(points_to_be_connected);
WHERE
WR1: SIZEOF(associated_stratum) = SIZEOF(bag_to_set(associated_stratum));
END_ENTITY;
ENTITY Interconnect_connection_zone_position_relationship;
associating_design_view_shape : Geometric_model;
associated_usage : Connection_zone_in_design_view;
associated_connection_zone_shape_definition : Geometric_model;
associated_usage_placement : Axis_placement;
associating_design_view : Layered_interconnect_module_design_view;
END_ENTITY;
ENTITY Interconnect_module_design_view
SUPERTYPE OF
(Layered_interconnect_module_design_view)
SUBTYPE OF (Assembly_definition, Part_design_view);
END_ENTITY;
ENTITY Interconnect_module_edge
SUPERTYPE OF
(ONEOF (Partially_plated_interconnect_module_edge,
Plated_interconnect_module_edge))
SUBTYPE OF (Inter_stratum_feature);
WHERE
WR1: SIZEOF(QUERY(shape <* SELF\Inter_stratum_feature.derived_from\Geometric_template.shapes |
NOT ('CONSTRUCTIVE_SOLID_GEOMETRY_2D_ARM.SINGLE_BOUNDARY_CSG_2D_MODEL' IN TYPEOF(shape)))) = 0;
WR2: NOT EXISTS(SELF\Inter_stratum_feature.vertical_extent);
END_ENTITY;
ENTITY Interconnect_module_edge_segment
SUPERTYPE OF
(ONEOF (Plated_interconnect_module_edge_segment,
Unplated_interconnect_module_edge_segment))
SUBTYPE OF (Inter_stratum_feature);
composed_edge : Interconnect_module_edge;
start_vertex : Edge_segment_vertex;
end_vertex : Edge_segment_vertex;
SELF\Inter_stratum_feature.derived_from : Inter_stratum_feature_edge_segment_template;
WHERE
WR1: start_vertex :<>: end_vertex;
END_ENTITY;
ENTITY Interconnect_module_macro_terminal
SUBTYPE OF (Interconnect_module_terminal);
INVERSE
defining_terminal : Component_feature_to_physical_usage_view_assignment FOR defined_part_feature;
WHERE
WR1: SIZEOF(['LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.COMPONENT_TERMINATION_PASSAGE_JOIN_TERMINAL',
'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.VIA_TERMINAL',
'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.PRINTED_COMPONENT_JOIN_TERMINAL',
'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.CONDUCTIVE_INTERCONNECT_ELEMENT_TERMINAL',
'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.LAND_JOIN_TERMINAL'] * TYPEOF(defining_terminal.assigned_design_object)) = 1;
END_ENTITY;
ENTITY Interconnect_module_stratum_assembly_relationship;
assembly : Layered_interconnect_module_design_view;
component : Stratum;
reference_designation : STRING;
UNIQUE
UR1: assembly, reference_designation;
END_ENTITY;
ENTITY Interface_access_material_removal_laminate_component
SUBTYPE OF (Material_removal_laminate_component);
SELF\Material_removal_laminate_component.causal_item RENAMED accessed_interface : Laminate_component_interface_terminal;
END_ENTITY;
ENTITY Interface_access_stratum_feature_template_component
SUBTYPE OF (Stratum_feature_template_component);
accessed_interface : Laminate_component_interface_terminal;
END_ENTITY;
ENTITY Internal_probe_access_area
SUBTYPE OF (Probe_access_area);
stratum_feature_implementation : Stratum_feature;
INVERSE
internal_access : Internal_stratum_access FOR connected_probe;
WHERE
WR1: NOT EXISTS(SELF\Probe_access_area.stratum_feature_material_stackup)
OR
(stratum_feature_implementation :=:
SELF\Probe_access_area.stratum_feature_material_stackup\Stratum_feature_based_derived_pattern.reference_stratum_feature);
END_ENTITY;
ENTITY Internal_stratum_access;
connected_probe : Internal_probe_access_area;
inter_stratum_feature : Via;
UNIQUE
UR1: connected_probe, inter_stratum_feature;
END_ENTITY;
ENTITY Intra_stratum_join_relationship
SUBTYPE OF (Routed_join_relationship);
points_to_be_connected : SET[2:?] OF Layer_connection_point;
DERIVE
associated_stratum : Design_layer_stratum := points_to_be_connected[1].resident_design_layer_stratum;
INVERSE
ordered_implementation : SET[0:1] OF Conductor FOR implementation_requirement;
random_implementation : SET[0:1] OF Connected_filled_area FOR implementation_requirement;
WHERE
WR1: (SIZEOF(ordered_implementation) = 1) XOR (SIZEOF(random_implementation) = 1);
WR2: SIZEOF(QUERY(ptbc <* points_to_be_connected |
NOT(ptbc.resident_design_layer_stratum = associated_stratum)
)) = 0;
END_ENTITY;
ENTITY Join_relationship
ABSTRACT SUPERTYPE
OF (ONEOF (Routed_join_relationship,
Unrouted_join_relationship));
associated_layout : Layered_interconnect_module_design_view;
END_ENTITY;
ENTITY Laminate_component
SUPERTYPE OF
(ONEOF (Material_removal_laminate_component, (
Stratum_feature_template_component
ANDOR Probe_access_area),
Inter_stratum_feature,
Generic_laminate_text_component,
Laminate_text_string_component)
ANDOR Fiducial)
SUBTYPE OF (Assembly_component, Single_instance);
SELF\Definition_based_product_occurrence.derived_from : Template_definition;
INVERSE
cad_layer : SET[0:1] OF External_source_identification FOR item;
WHERE
WR1: ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.LAYERED_INTERCONNECT_MODULE_DESIGN_VIEW' IN TYPEOF(SELF\Assembly_component.occurrence_contexts[1]\Product_occurrence_definition_relationship.relating_view))
OR
('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRUCTURED_LAYOUT_COMPONENT_SUB_ASSEMBLY_RELATIONSHIP' IN TYPEOF(SELF\Assembly_component.occurrence_contexts[1]));
END_ENTITY;
ENTITY Laminate_component_feature
ABSTRACT SUPERTYPE
OF (ONEOF (Conductive_interconnect_element_terminal,
Laminate_component_interface_terminal,
Laminate_component_join_terminal,
Via_terminal))
SUBTYPE OF (Component_feature);
END_ENTITY;
ENTITY Laminate_component_interface_terminal
ABSTRACT SUPERTYPE
SUBTYPE OF (Laminate_component_feature);
END_ENTITY;
ENTITY Laminate_component_join_terminal
ABSTRACT SUPERTYPE
SUBTYPE OF (Laminate_component_feature, Component_terminal);
INVERSE
node_implementation : SET[0:1] OF Generic_physical_network FOR connectivity_requirement_element;
END_ENTITY;
ENTITY Laminate_group_component_make_from_relationship
SUBTYPE OF (Component_make_from_relationship);
SELF\Component_make_from_relationship.reusable_component : Assembly_group_component;
SELF\Component_make_from_relationship.resultant_component : Assembly_group_component;
stratum_mapping : SET[1:?] OF Part_definition_relationship;
WHERE
WR1: SIZEOF(QUERY(sar <* reusable_component\Assembly_group_component.components | NOT ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.LAMINATE_COMPONENT'
IN TYPEOF(sar\Product_occurrence_definition_relationship.related_view)))) = 0;
WR2: SIZEOF(QUERY(sar <* resultant_component\Assembly_group_component.components | NOT ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.LAMINATE_COMPONENT'
IN TYPEOF(sar\Product_occurrence_definition_relationship.related_view)))) = 0;
END_ENTITY;
ENTITY Laminate_text_string_component
SUBTYPE OF (Array_placement_group, Laminate_component);
SELF\Definition_based_product_occurrence.derived_from : Part_string_template;
message_contents : Text_literal_with_extent;
WHERE
WR1: SIZEOF(QUERY(sar <* SELF\Assembly_group_component.components |
NOT ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.GENERIC_LAMINATE_TEXT_COMPONENT' IN TYPEOF(sar.related_view)) )) = 0;
WR2: NOT EXISTS(SELF\Product_view_definition.name);
END_ENTITY;
ENTITY Layer_connection_point
ABSTRACT SUPERTYPE
OF (ONEOF (Explicitly_located_layer_connection_point,
Dependently_located_layer_connection_point))
SUBTYPE OF (Shape_element);
location_2d :
OPTIONAL
Cartesian_point;
location_3d :
OPTIONAL
Cartesian_point;
SELF\Shape_element.associated_definition RENAMED resident_design_layer_stratum : Design_layer_stratum;
DERIVE
reference_network : Generic_physical_network := limd_get_generic_network(
inter_join_path,
intra_join_path,
embedded_physical_component_path,
unrouted_join_path);
INVERSE
inter_join_path : SET[0:1] OF Inter_stratum_join_relationship FOR points_to_be_connected;
intra_join_path : SET[0:?] OF Intra_stratum_join_relationship FOR points_to_be_connected;
embedded_physical_component_path : SET[0:?] OF Stratum_embedded_physical_component_join_relationship FOR point_to_be_connected;
unrouted_join_path : SET[0:1] OF Unrouted_join_relationship FOR unrouted_lcp;
UNIQUE
UR1: SELF\Shape_element.element_name, resident_design_layer_stratum;
WHERE
WR1: EXISTS(location_2d) OR EXISTS(location_3d);
WR2: NOT (EXISTS(location_2d)) OR ((SIZEOF(location_2d\Cartesian_point.coordinates)) = 2);
WR3: NOT (EXISTS(location_3d)) OR ((SIZEOF(location_3d\Cartesian_point.coordinates)) = 3);
WR4: EXISTS(reference_network);
WR5: NOT EXISTS (SELF\Shape_element.description);
WR6: SIZEOF(QUERY(ijp <* intra_join_path | NOT(resident_design_layer_stratum :=: ijp.associated_stratum)
)) = 0;
END_ENTITY;
ENTITY Layer_stack_region
SUBTYPE OF (Instanced_feature);
applied_stack : SET[1:?] OF Local_linear_stack;
SELF\Shape_element.associated_definition : Layered_interconnect_module_design_view;
WHERE
WR1: EXISTS(SELF\Shape_element.associated_definition\Product_view_definition.primary_shape_representation)
AND (NOT EXISTS(SELF\Shape_element.associated_definition\Product_view_definition.auxiliary_shape_representations));
WR2: 'CONSTRUCTIVE_SOLID_GEOMETRY_2D_ARM.SINGLE_BOUNDARY_CSG_2D_MODEL' IN TYPEOF (SELF\Shape_element.associated_definition\Product_view_definition.primary_shape_representation);
END_ENTITY;
ENTITY Layered_interconnect_module_design_view
SUPERTYPE OF
(Layered_interconnect_panel_design_view)
SUBTYPE OF (Interconnect_module_design_view);
used_stack_model : Design_stack_model;
INVERSE
requirements : SET[0:?] OF Requirement_assignment FOR assigned_to;
WHERE
WR1: (SIZEOF(USEDIN(SELF,'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.INTERCONNECT_MODULE_STRATUM_ASSEMBLY_RELATIONSHIP.' + 'ASSEMBLY'))
= 0)
OR
(SIZEOF(QUERY(imsar <* USEDIN(SELF, 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.INTERCONNECT_MODULE_STRATUM_ASSEMBLY_RELATIONSHIP.'
+ 'ASSEMBLY') |
(('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.DESIGN_LAYER_STRATUM' IN TYPEOF(imsar.component)) AND
(imsar.component\Design_layer_stratum.primary_design_layer_stratum = TRUE)))) = 1);
WR2: NOT EXISTS (SELF\Product_view_definition.additional_characterization);
WR3: SIZEOF(QUERY(vdr <* USEDIN(SELF, 'PRODUCT_VIEW_DEFINITION_RELATIONSHIP_ARM.VIEW_DEFINITION_RELATIONSHIP.' + 'RELATING_VIEW')
|
(('ASSEMBLY_STRUCTURE_ARM.ASSEMBLY_COMPONENT_RELATIONSHIP' IN TYPEOF(vdr)) AND
('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.INTERCONNECT_MODULE_EDGE' IN TYPEOF(vdr.related_view)))
)) = 1;
END_ENTITY;
ENTITY Layered_interconnect_panel_design_view
SUBTYPE OF (Layered_interconnect_module_design_view);
END_ENTITY;
ENTITY Layout_junction;
name : STRING;
associated_definition : Layered_interconnect_module_design_view;
net : Generic_physical_network;
location : Cartesian_point;
UNIQUE
UR1: location, net;
UR2: name, net;
WHERE
WR1: associated_definition :=: net.current_associated_definition;
END_ENTITY;
ENTITY Library_reference_view_definition_relationship
SUBTYPE OF (View_definition_relationship);
WHERE
WR1: NOT EXISTS(SELF\View_definition_relationship.relation_type);
END_ENTITY;
ENTITY Material_removal_laminate_component
SUBTYPE OF (Laminate_component);
causal_item :
OPTIONAL
limd_restriction_basis_item;
design_intent : SET[1:?] OF stratum_feature_template_component_or_stratum;
SELF\Definition_based_product_occurrence.derived_from : material_removal_feature_template_or_parametric_template;
explicitly_created : BOOLEAN;
WHERE
WR1: SIZEOF(QUERY(sa <* design_intent | NOT(
NOT('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM' IN TYPEOF(sa)) OR
(SIZEOF(design_intent) = 1)))) = 0;
END_ENTITY;
ENTITY Material_removal_laminate_text_component
SUBTYPE OF (Generic_laminate_text_component);
design_intent : SET[1:?] OF stratum_feature_template_component_or_stratum;
WHERE
WR1: SIZEOF(QUERY(sa <* design_intent | NOT(
NOT('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM' IN TYPEOF(sa)) OR
(SIZEOF(design_intent) = 1)))) = 0;
END_ENTITY;
ENTITY Material_removal_structured_component
SUBTYPE OF (Structured_layout_component);
SELF\Definition_based_product_occurrence.derived_from : Material_removal_structured_template;
WHERE
WR1: NOT EXISTS(SELF\Product_view_definition.name);
END_ENTITY;
ENTITY Multi_layer_material_removal_laminate_component
SUBTYPE OF (Material_removal_laminate_component);
derived_layer_geometry : Stratum_feature_based_derived_pattern;
END_ENTITY;
ENTITY Multi_layer_stratum_feature_template_component
SUBTYPE OF (Stratum_feature_template_component);
derived_layer_geometry : Stratum_feature_based_derived_pattern;
WHERE
WR1: SELF\Stratum_feature_template_component.implementation_or_resident_stratum\Stratum_feature.resident_stratum
:=: derived_layer_geometry.reference_stratum_feature.associated_definition;
END_ENTITY;
ENTITY Multi_stratum_special_symbol_component
SUBTYPE OF (Structured_layout_component);
SELF\Definition_based_product_occurrence.derived_from : Multi_stratum_special_symbol_template;
WHERE
WR1: NOT EXISTS(SELF\Product_view_definition.name);
END_ENTITY;
ENTITY Padstack_occurrence
SUBTYPE OF (Structured_layout_component);
SELF\Definition_based_product_occurrence.derived_from : Padstack_definition;
INVERSE
SELF\Assembly_group_component.components : SET[1:?] OF Structured_layout_component_sub_assembly_relationship FOR relating_view;
WHERE
WR1: SIZEOF(QUERY(sar <* components |
EXISTS(sar.second_location)
)) = 0;
END_ENTITY;
ENTITY Partially_plated_cutout
SUBTYPE OF (Cutout);
INVERSE
plated_segment : SET[1:?] OF Plated_cutout_edge_segment FOR composed_cutout;
unplated_segment : SET[1:?] OF Unplated_cutout_edge_segment FOR composed_cutout;
END_ENTITY;
ENTITY Partially_plated_interconnect_module_edge
SUBTYPE OF (Interconnect_module_edge);
INVERSE
plated_segment : SET[1:?] OF Plated_interconnect_module_edge_segment FOR composed_edge;
unplated_segment : SET[1:?] OF Unplated_interconnect_module_edge_segment FOR composed_edge;
WHERE
WR1: NOT EXISTS(SELF\Product_view_definition.name);
END_ENTITY;
ENTITY Physical_connectivity_interrupting_cutout
SUBTYPE OF (Cutout);
interrupted_connectivity_element : SET[1:?] OF Conductive_interconnect_element;
END_ENTITY;
ENTITY Physical_network_group
ABSTRACT SUPERTYPE
OF (ONEOF (Pre_defined_physical_network_group,
Externally_defined_physical_network_group))
SUBTYPE OF (Group);
SELF\Group.elements : SET[1:?] OF Generic_physical_network;
END_ENTITY;
ENTITY Physical_network_group_element_relationship
ABSTRACT SUPERTYPE
OF (ONEOF (Pre_defined_physical_network_group_element_relationship,
Externally_defined_physical_network_group_element_relationship))
SUBTYPE OF (Group_relationship);
SELF\Group_relationship.relating_group : Physical_network_group;
SELF\Group_relationship.related_group : Physical_network_group;
WHERE
WR1: acyclic_physical_network_group_element_relationship(SELF,
[related_group],
'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.PHYSICAL_NETWORK_GROUP_ELEMENT_RELATIONSHIP');
END_ENTITY;
ENTITY Physical_network_supporting_inter_stratum_feature
SUBTYPE OF (Plated_inter_stratum_feature, Inter_stratum_join_implementation);
END_ENTITY;
ENTITY Physical_network_supporting_stratum_feature_conductive_join
SUBTYPE OF (Stratum_feature_conductive_join, Inter_stratum_join_implementation);
END_ENTITY;
ENTITY Plated_cutout
SUBTYPE OF (Cutout, Plated_inter_stratum_feature);
END_ENTITY;
ENTITY Plated_cutout_edge_segment
SUBTYPE OF (Cutout_edge_segment, Plated_inter_stratum_feature);
SELF\Cutout_edge_segment.composed_cutout : Partially_plated_cutout;
END_ENTITY;
ENTITY Plated_inter_stratum_feature
ABSTRACT SUPERTYPE
OF (ONEOF (Plated_cutout,
Plated_interconnect_module_edge,
Plated_cutout_edge_segment,
Plated_interconnect_module_edge_segment,
Plated_passage))
SUBTYPE OF (Inter_stratum_feature);
WHERE
WR1: SELF\Inter_stratum_feature.vertical_extent.allocated_technology.plated_passage = TRUE;
END_ENTITY;
ENTITY Plated_interconnect_module_edge
SUBTYPE OF (Interconnect_module_edge, Plated_inter_stratum_feature);
WHERE
WR1: NOT EXISTS(SELF\Product_view_definition.name);
END_ENTITY;
ENTITY Plated_interconnect_module_edge_segment
SUBTYPE OF (Plated_inter_stratum_feature, Interconnect_module_edge_segment);
SELF\Interconnect_module_edge_segment.composed_edge : Partially_plated_interconnect_module_edge;
END_ENTITY;
ENTITY Plated_passage
SUPERTYPE OF
(ONEOF (Component_termination_passage,
Via))
SUBTYPE OF (Plated_inter_stratum_feature);
SELF\Inter_stratum_feature.vertical_extent : Passage_technology_allocation_to_stack_model;
WHERE
WR1: NOT EXISTS(SELF\Product_view_definition.name);
END_ENTITY;
ENTITY Pre_defined_physical_network_group
SUBTYPE OF (Physical_network_group);
WHERE
WR1: SELF\Group.membership_meaning IN Pre_defined_physical_network_group_types;
END_ENTITY;
ENTITY Pre_defined_physical_network_group_element_relationship
SUBTYPE OF (Physical_network_group_element_relationship);
WHERE
WR1: SELF\Group_relationship.relation_type IN Pre_defined_physical_network_group_relation_types;
END_ENTITY;
ENTITY Primary_stratum_indicator_symbol
SUBTYPE OF (Single_stratum_special_symbol_component);
END_ENTITY;
ENTITY Probe_access_area
SUPERTYPE OF
(Internal_probe_access_area)
SUBTYPE OF (Laminate_component, Shape_element);
SELF\Definition_based_product_occurrence.derived_from : Stratum_feature_template;
probed_layout_item : stratum_feature_or_stratum;
connection_area : SET[1:1] OF Connection_zone_in_design_view;
stratum_feature_material_stackup :
OPTIONAL
Stratum_feature_based_derived_pattern;
DERIVE
SELF\Shape_element.associated_definition : Probe_access_area := SELF;
SELF\Shape_element.element_name : STRING := '';
SELF\Shape_element.product_definitional : BOOLEAN := TRUE;
INVERSE
network : Routed_physical_network FOR probe;
WHERE
WR1: NOT (EXISTS(stratum_feature_material_stackup) AND
NOT('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.INTERNAL_PROBE_ACCESS_AREA' IN TYPEOF(SELF)))
OR
(('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE' IN TYPEOF(probed_layout_item))
AND
(probed_layout_item :=: stratum_feature_material_stackup\Stratum_feature_based_derived_pattern.reference_stratum_feature));
END_ENTITY;
ENTITY Region_based_derived_pattern;
extent : Inter_stratum_extent;
reference_stratum : design_or_documentation_stratum;
region : Csg_2d_model;
END_ENTITY;
ENTITY Routed_join_relationship
ABSTRACT SUPERTYPE
OF (ONEOF (Inter_stratum_join_relationship,
Intra_stratum_join_relationship,
Stratum_embedded_physical_component_join_relationship))
SUBTYPE OF (Join_relationship);
INVERSE
network_topology : Routed_physical_network FOR routed_connectivity_requirement_element;
END_ENTITY;
ENTITY Routed_physical_network
SUBTYPE OF (Generic_physical_network);
routed_connectivity_requirement_element : SET[1:?] OF Routed_join_relationship;
probe :
OPTIONAL
SET[1:?] OF Probe_access_area;
DERIVE
complete : BOOLEAN := NOT EXISTS(unrouted_connectivity_requirement_element);
valid_net : LOGICAL := (SIZEOF(SELF\Generic_physical_network.connectivity_requirement_element) > 1 );
WHERE
WR1: SIZEOF(QUERY(cre <* SELF\Generic_physical_network.connectivity_requirement_element | NOT
(NOT ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.LAND_JOIN_TERMINAL' IN TYPEOF(cre)) OR
(SIZEOF(TYPEOF(cre\Component_feature.associated_definition) *
['LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.CONTACT_SIZE_DEPENDENT_LAND']) = 1)))) = 0;
WR2: NOT EXISTS(SELF\Generic_physical_network.reference_connected_terminals) OR
(SELF\Generic_physical_network.reference_connected_terminals.associated_definition =
SELF\Generic_physical_network.current_associated_definition\Part_design_view.usage_view);
END_ENTITY;
ENTITY Single_stratum_special_symbol_component
SUPERTYPE OF
(Primary_stratum_indicator_symbol)
SUBTYPE OF (Structured_layout_component);
SELF\Definition_based_product_occurrence.derived_from : Single_stratum_special_symbol_template;
WHERE
WR1: NOT EXISTS(SELF\Product_view_definition.name);
END_ENTITY;
ENTITY Stratum
SUPERTYPE OF
(ONEOF (Documentation_layer_stratum,
Design_layer_stratum))
SUBTYPE OF (Part_view_definition);
SELF\Product_view_definition.id : STRING;
definition : Stratum_technology_occurrence;
DERIVE
of_average_surface : SET[0:1] OF Stratum_average_surface := QUERY(tmp <* of_surface | 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_AVERAGE_SURFACE' IN TYPEOF(tmp));
base_component : SET[0:?] OF Area_component := get_base_component(SELF);
of_product_version : SET[1:?] OF Product_version := bag_to_set(QUERY(pv <* USEDIN(assembly[1].assembly.defined_version.of_product, 'PRODUCT_VERSION_ARM.PRODUCT_VERSION.OF_PRODUCT')
|
(SIZEOF(QUERY( pd <* USEDIN(pv, 'PRODUCT_VIEW_DEFINITION_ARM.PRODUCT_VIEW_DEFINITION.DEFINED_VERSION') |
(SIZEOF(QUERY(nauo <* USEDIN(pd, 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.INTERCONNECT_MODULE_STRATUM_ASSEMBLY_RELATIONSHIP.ASSEMBLY')
| (SELF = nauo.component))) = 1)
)) = 1)
));
of_technology : Stratum_technology := definition\Stratum_technology_occurrence.definition;
INVERSE
of_surface : SET[0:3] OF Stratum_surface FOR of_stratum;
assembly : SET[1:?] OF Interconnect_module_stratum_assembly_relationship FOR component;
stratum_usage : SET[0:1] OF External_source_identification FOR item;
material_product : SET[0:1] OF Make_from_relationship FOR related_view;
WHERE
WR1: SIZEOF(QUERY(tmp <* of_surface | tmp\Stratum_surface.name = stratum_surface_designation.average_surface)) <= 1;
WR2: NOT(SIZEOF(QUERY(tmp <* of_surface | tmp\Stratum_surface.name = stratum_surface_designation.average_surface)) = 1) OR
(SIZEOF(of_surface) = 3);
WR3: SIZEOF(QUERY(tmp <* of_surface | tmp\Stratum_surface.name = stratum_surface_designation.primary_surface)) <= 1;
WR4: SIZEOF(QUERY(tmp <* of_surface | tmp\Stratum_surface.name = stratum_surface_designation.secondary_surface)) <= 1;
WR5: NOT(SIZEOF(QUERY(tmp <* of_surface | tmp\Stratum_surface.name = stratum_surface_designation.secondary_surface)) = 1)
OR
(SIZEOF(QUERY(tmp <* of_surface | tmp\Stratum_surface.name = stratum_surface_designation.primary_surface)) = 1);
WR6: NOT EXISTS (SELF\Product_view_definition.additional_characterization);
WR7: SIZEOF(QUERY(asse <* assembly |
NOT(asse.assembly.defined_version.of_product = assembly[1].assembly.defined_version.of_product)
)) = 0;
WR8: SIZEOF(of_product_version) = SIZEOF(assembly);
WR9: SELF\Product_view_definition.defined_version IN of_product_version;
WR10: NOT ( SIZEOF(material_product)= 1) OR (material_product[1].relating_view IN
of_technology\Stratum_technology.stratum_material[1].items);
WR11: SIZEOF(base_component) < 2;
END_ENTITY;
ENTITY Stratum_average_surface
SUBTYPE OF (Stratum_surface);
WHERE
WR1: SELF\Stratum_surface.name = stratum_surface_designation.average_surface;
END_ENTITY;
ENTITY Stratum_embedded_physical_component_join_relationship
SUBTYPE OF (Routed_join_relationship);
terminal_to_be_connected : SET[1:?] OF Embedded_physical_component_terminal;
point_to_be_connected : SET[1:?] OF Layer_connection_point;
DERIVE
associated_component : Assembly_component := terminal_to_be_connected[1]\Component_feature.associated_definition;
WHERE
WR1: SIZEOF(QUERY(t <* terminal_to_be_connected | t.associated_definition <> associated_component)) = 0;
END_ENTITY;
ENTITY Stratum_feature
SUPERTYPE OF
(ONEOF (Conductor,
Conductive_filled_area)
ANDOR Fiducial_stratum_feature)
SUBTYPE OF (Shape_element);
SELF\Shape_element.associated_definition RENAMED resident_stratum : design_or_documentation_stratum;
feature_of_size : BOOLEAN;
INVERSE
shape : SET[0:?] OF Stratum_feature_usage FOR definition;
UNIQUE
UR1: SELF\Shape_element.element_name, resident_stratum;
WHERE
WR1: SIZEOF(query ( ac <* USEDIN(SELF,'') |
('PHYSICAL_UNIT_DESIGN_VIEW_ARM.ASSEMBLY_COMPONENT' IN TYPEOF(ac))
AND
(get_assemblies(ac) <> get_ims(resident_stratum))
))
= 0;
END_ENTITY;
ENTITY Stratum_feature_based_derived_pattern;
extent : Inter_stratum_extent;
reference_stratum_feature : Stratum_feature;
INVERSE
layer_usage : SET[0:1] OF External_source_identification FOR item;
WHERE
WR1: reference_stratum_feature\Stratum_feature.resident_stratum IN extent\Inter_stratum_extent.included_stratum;
WR2: SIZEOF(['LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.DESIGN_LAYER_STRATUM',
'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.DOCUMENTATION_LAYER_STRATUM'] * TYPEOF(reference_stratum_feature\Stratum_feature.resident_stratum))
= 1;
WR3: SIZEOF(QUERY(ds <* extent\Inter_Stratum_extent.included_stratum |
NOT('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.DERIVED_STRATUM' IN TYPEOF(ds))
)) = 1;
END_ENTITY;
ENTITY Stratum_feature_conductive_join
SUPERTYPE OF
(Physical_network_supporting_stratum_feature_conductive_join);
relating_concept : Stratum_feature_template_component;
related_concept : Stratum_feature_template_component;
resulting_shape :
OPTIONAL
Geometric_model;
INVERSE
technology_requirement : SET[1:?] OF Requirement_assignment FOR assigned_to;
WHERE
WR1: related_concept.resident_stratum :<>: relating_concept.resident_stratum;
END_ENTITY;
ENTITY Stratum_feature_template_component
SUPERTYPE OF
(ONEOF (Area_component,
Conductive_interconnect_element))
SUBTYPE OF (Laminate_component);
SELF\Definition_based_product_occurrence.derived_from : stratum_feature_template_or_parametric_template;
implementation_or_resident_stratum : stratum_feature_or_stratum;
causal_item :
OPTIONAL
limd_restriction_basis_item;
DERIVE
resident_stratum : Stratum := get_resident_stratum(SELF);
WHERE
WR1: NOT EXISTS(SELF\Product_view_definition.name);
WR2: ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.CONDUCTIVE_INTERCONNECT_ELEMENT_WITH_PRE_DEFINED_TRANSITIONS' IN TYPEOF(SELF))
OR
NOT('LAYERED_INTERCONNECT_SIMPLE_TEMPLATE_ARM.TRACE_TEMPLATE' IN TYPEOF(derived_from));
END_ENTITY;
ENTITY Stratum_feature_template_component_with_stratum_feature
SUBTYPE OF (Stratum_feature_template_component, Stratum_feature);
DERIVE
SELF\Stratum_feature_template_component.implementation_or_resident_stratum : Stratum_feature := SELF;
END_ENTITY;
ENTITY Stratum_feature_usage
SUBTYPE OF (Item_identified_representation_usage);
SELF\Item_identified_representation_usage.definition : Stratum_feature;
SELF\Item_identified_representation_usage.identified_item : limd_sf_shape_select;
SELF\Item_identified_representation_usage.used_representation RENAMED used_model : limd_stratum_shape_model_select;
WHERE
WR1: SELF\Item_identified_representation_usage.name = '';
WR2: NOT EXISTS(SELF\Item_identified_representation_usage.description);
END_ENTITY;
ENTITY Stratum_surface;
name : stratum_surface_designation;
of_stratum : Stratum;
of_technology :
OPTIONAL
Stratum_surface_technology;
UNIQUE
UR1: name, of_stratum;
END_ENTITY;
ENTITY Structured_layout_component
ABSTRACT SUPERTYPE
OF (ONEOF (Footprint_occurrence,
Material_removal_structured_component,
Multi_stratum_special_symbol_component,
Padstack_occurrence,
Single_stratum_special_symbol_component))
SUBTYPE OF (Assembly_group_component);
SELF\Definition_based_product_occurrence.derived_from : Structured_template;
WHERE
WR1: SIZEOF(TYPEOF(SELF) *
['LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.LAMINATE_COMPONENT',
'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.PHYSICAL_COMPONENT']) = 0;
WR2: SIZEOF(QUERY(agc <* SELF\Assembly_group_component.components |
NOT('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRUCTURED_LAYOUT_COMPONENT_SUB_ASSEMBLY_RELATIONSHIP' IN TYPEOF(agc)))) = 0;
END_ENTITY;
ENTITY Structured_layout_component_sub_assembly_relationship
SUPERTYPE OF
(Footprint_occurrence_sub_assembly_relationship)
SUBTYPE OF (Next_assembly_usage_occurrence_relationship);
SELF\Product_occurrence_definition_relationship.relating_view : Structured_layout_component;
SELF\Product_occurrence_definition_relationship.related_view : Assembly_component;
first_location : Template_location_in_structured_template;
second_location :
OPTIONAL
Template_location_in_structured_template;
overriding_shape :
OPTIONAL
Part_template_shape_model;
design_specific_placement : BOOLEAN;
DERIVE
first_location_overridden : LOGICAL := NOT EXISTS(second_location) AND
(SELF\Product_occurrence_definition_relationship.related_view\Definition_based_product_occurrence.derived_from
:<>: first_location.template);
second_location_overridden : LOGICAL := EXISTS(second_location) AND
(SELF\Product_occurrence_definition_relationship.related_view\Definition_based_product_occurrence.derived_from
:<>: second_location.template);
UNIQUE
UR1: first_location, second_location, relating_view, related_view;
WHERE
WR1: NOT EXISTS(SELF\Assembly_component_relationship.location_indicator);
WR2: first_location_overridden OR
(SELF\Product_occurrence_definition_relationship.relating_view\Definition_based_product_occurrence.derived_from :=: first_location.assembly);
WR3: first_location :<>: second_location;
WR4: NOT first_location_overridden OR ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.PADSTACK_OCCURRENCE' IN TYPEOF(relating_view));
WR5: NOT second_location_overridden OR ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.FOOTPRINT_OCCURRENCE' IN TYPEOF(relating_view));
WR6: NOT (first_location_overridden AND second_location_overridden);
WR7: NOT (EXISTS(overriding_shape) XOR (first_location_overridden OR second_location_overridden));
WR8: NOT EXISTS(overriding_shape) OR (related_view.derived_from IN overriding_shape.shape_characterized_definition);
WR9: NOT ((first_location\Template_location_in_structured_template.placement_status = template_location_placement_status.is_fixed)
AND
design_specific_placement);
END_ENTITY;
ENTITY Structured_layout_component_sub_assembly_relationship_with_component
SUBTYPE OF (Structured_layout_component_sub_assembly_relationship, Assembly_component);
DERIVE
SELF\Structured_layout_component_sub_assembly_relationship.related_view : Assembly_component := SELF;
END_ENTITY;
ENTITY Unplated_cutout_edge_segment
SUBTYPE OF (Cutout_edge_segment);
SELF\Cutout_edge_segment.composed_cutout : Partially_plated_cutout;
WHERE
WR1: NOT('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.PLATED_INTER_STRATUM_FEATURE' IN TYPEOF(SELF));
END_ENTITY;
ENTITY Unplated_interconnect_module_edge_segment
SUBTYPE OF (Interconnect_module_edge_segment);
SELF\Interconnect_module_edge_segment.composed_edge : Partially_plated_interconnect_module_edge;
WHERE
WR1: NOT('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.PLATED_INTER_STRATUM_FEATURE' IN TYPEOF(SELF));
END_ENTITY;
ENTITY Unrouted_conductive_interconnect_element
SUBTYPE OF (Conductive_interconnect_element);
SELF\Stratum_feature_template_component.implementation_or_resident_stratum : Stratum;
END_ENTITY;
ENTITY Unrouted_join_relationship
SUBTYPE OF (Join_relationship);
unrouted_terminals :
OPTIONAL
SET[1:?] OF Laminate_component_join_terminal;
unrouted_lcp :
OPTIONAL
SET[1:?] OF Layer_connection_point;
unrouted_junction :
OPTIONAL
SET[1:?] OF Layout_junction;
unrouted_paa :
OPTIONAL
SET[1:?] OF Probe_access_area;
unrouted_via :
OPTIONAL
SET[1:?] OF Via_terminal;
INVERSE
network_topology : Generic_physical_network FOR unrouted_connectivity_requirement_element;
WHERE
WR1: (SIZEOF(unrouted_terminals) + SIZEOF(unrouted_lcp) + SIZEOF(unrouted_paa) + SIZEOF(unrouted_via) + SIZEOF(unrouted_junction))
> 0;
END_ENTITY;
ENTITY Unrouted_physical_network
SUBTYPE OF (Generic_physical_network);
END_ENTITY;
ENTITY Unsupported_passage
SUBTYPE OF (Inter_stratum_feature);
SELF\Definition_based_product_occurrence.derived_from : Unsupported_passage_template;
SELF\Inter_stratum_feature.vertical_extent : Passage_technology_allocation_to_stack_model;
WHERE
WR1: NOT EXISTS(SELF\Product_view_definition.name);
END_ENTITY;
ENTITY Via
ABSTRACT SUPERTYPE
SUBTYPE OF (Plated_passage);
SELF\Definition_based_product_occurrence.derived_from : Via_template;
END_ENTITY;
ENTITY Via_terminal
SUBTYPE OF (Laminate_component_feature);
SELF\Component_feature.definition : Via_template_terminal;
SELF\Component_feature.associated_definition : Via;
WHERE
WR1: NOT EXISTS(SELF\Shape_element.description);
END_ENTITY;
SUBTYPE_CONSTRAINT array_placement_group_subtypes FOR Array_placement_group;
ONEOF (Laminate_text_string_component,
Linear_array_placement_group_component,
Rectangular_array_placement_group_component);
END_SUBTYPE_CONSTRAINT;
SUBTYPE_CONSTRAINT component_feature_subtypes FOR Component_feature;
ONEOF (Physical_component_feature,
Laminate_component_feature);
END_SUBTYPE_CONSTRAINT;
SUBTYPE_CONSTRAINT component_terminal_subtypes FOR Component_terminal;
ONEOF (Physical_component_terminal,
Laminate_component_join_terminal);
END_SUBTYPE_CONSTRAINT;
SUBTYPE_CONSTRAINT inter_stratum_feature_subtypes FOR Inter_stratum_feature;
ONEOF (Cutout,
Interconnect_module_edge);
END_SUBTYPE_CONSTRAINT;
SUBTYPE_CONSTRAINT interconnect_module_terminal_subtypes FOR Interconnect_module_terminal;
ONEOF (Interconnect_module_interface_terminal,
Interconnect_module_macro_terminal);
END_SUBTYPE_CONSTRAINT;
SUBTYPE_CONSTRAINT limd_assembly_component_subtypes FOR Assembly_component;
ONEOF (Physical_component,
Laminate_component);
END_SUBTYPE_CONSTRAINT;
SUBTYPE_CONSTRAINT limd_part_view_definition_subtypes FOR Part_view_definition;
ONEOF (Part_usage_view,
Part_design_view,
Stratum);
END_SUBTYPE_CONSTRAINT;
SUBTYPE_CONSTRAINT limd_template_definition_subtypes FOR Template_definition;
ONEOF ((ONEOF (Printed_part_template,
Special_symbol_template)
ANDOR Geometric_template),
Non_conductive_cross_section_template,
Part_string_template,
Parametric_template,
Part_text_template,
Stratum_stack_model,
Stratum_sub_stack);
END_SUBTYPE_CONSTRAINT;
RULE limd_unique_stratum FOR
(Stratum, Layered_interconnect_module_design_view, Stratum_technology_occurrence);
LOCAL s : BAG OF Stratum := []; imsar : BAG OF Interconnect_module_stratum_assembly_relationship := []; sto : BAG OF Stratum_technology_occurrence := []; pass : BOOLEAN := TRUE; END_LOCAL; REPEAT i := 1 to SIZEOF(Layered_interconnect_module_design_view) by 1; imsar := bag_to_set(USEDIN(Layered_interconnect_module_design_view[i], 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.INTERCONNECT_MODULE_STRATUM_ASSEMBLY_RELATIONSHIP.ASSEMBLY')); REPEAT j := 1 to SIZEOF(imsar) by 1; s := s + imsar[j].component; END_REPEAT; REPEAT j := 1 to SIZEOF(s) by 1; sto := sto + s[j].definition; END_REPEAT; IF (SIZEOF(sto) < SIZEOF(s)) THEN pass := FALSE; ESCAPE; END_IF; END_REPEAT;
WHERE
WR1: pass;
END_RULE;
FUNCTION acyclic_area_component
(relation : Area_component; relatives : SET[1:?] OF Area_component; specific_relation : STRING) : BOOLEAN;
LOCAL x : SET OF Area_component; END_LOCAL; IF relation.replaced_component IN relatives THEN RETURN (FALSE); END_IF; x := QUERY(pd <* bag_to_set(USEDIN(relation.replaced_component, 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.' + 'AREA_COMPONENT.' + 'REPLACED_BY')) | specific_relation IN TYPEOF(pd)); REPEAT i := 1 TO HIINDEX(x); IF NOT acyclic_area_component(x[i], relatives + relation.replaced_component, specific_relation) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE);
END_FUNCTION;
FUNCTION acyclic_conductive_interconnect_element_terminal_link
(relation : Conductive_interconnect_element_terminal_link; relatives : SET[1:?] OF Conductive_interconnect_element_terminal; specific_relation : STRING) : BOOLEAN;
LOCAL x : SET OF Conductive_interconnect_element_terminal_link := []; END_LOCAL; IF relation.precedent_point IN relatives THEN RETURN (FALSE); END_IF; x := QUERY(pd <* bag_to_set(USEDIN(relation.precedent_point, 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.' + 'CONDUCTIVE_INTERCONNECT_ELEMENT_TERMINAL_LINK.' + 'SUBSEQUENT_POINT')) | specific_relation IN TYPEOF(pd)); REPEAT i := 1 TO HIINDEX(x); IF NOT acyclic_conductive_interconnect_element_terminal_link(x[i], relatives + relation.precedent_point, specific_relation) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE);
END_FUNCTION;
FUNCTION acyclic_physical_network_group_element_relationship
(relation : Physical_network_group_element_relationship; relatives : SET[1:?] OF Physical_network_group; specific_relation : STRING) : BOOLEAN;
LOCAL x : SET OF Physical_network_group_element_relationship := []; END_LOCAL; IF relation.relating_group IN relatives THEN RETURN (FALSE); END_IF; x := QUERY(pd <* bag_to_set(USEDIN(relation.relating_group, 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.' + 'PHYSICAL_NETWORK_GROUP_ELEMENT_RELATIONSHIP.' + 'RELATED_GROUP')) | specific_relation IN TYPEOF(pd)); REPEAT i := 1 TO HIINDEX(x); IF NOT acyclic_physical_network_group_element_relationship(x[i], relatives + relation.relating_group, specific_relation) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE);
END_FUNCTION;
FUNCTION correlated_terminals
(input1 : SET[0:?] OF Conductive_interconnect_element_terminal; input2 : SET[0:?] OF Conductive_interconnect_element_terminal_link) : LOGICAL;
LOCAL pass : LOGICAL := FALSE; ciet : SET OF conductive_interconnect_element_terminal := []; END_LOCAL; REPEAT i := 1 TO SIZEOF(input2) BY 1; ciet := ciet + input2[i].precedent_point; ciet := ciet + input2[i].subsequent_point; END_REPEAT; pass := (input1 = ciet); IF (pass = UNKNOWN) THEN RETURN(FALSE); END_IF; RETURN(pass);
END_FUNCTION;
FUNCTION get_base_component
(input : Stratum) : SET[0:?] OF Area_component;
LOCAL ac: SET OF Area_component := []; i : INTEGER := 0; sf : SET OF Stratum_feature := bag_to_set(USEDIN(input,'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE.RESIDENT_STRATUM')); sftc_s : SET OF Stratum_feature_template_component := bag_to_set( USEDIN(input,'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE_TEMPLATE_COMPONENT.IMPLEMENTATION_OR_RESIDENT_STRATUM')); sftc_sf : SET OF Stratum_feature_template_component := []; sftc_t : SET OF Stratum_feature_template_component := []; END_LOCAL; REPEAT i := 1 TO HIINDEX(sf) BY 1; sftc_sf := sftc_sf + bag_to_set(USEDIN(sf[i],'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE_TEMPLATE_COMPONENT.IMPLEMENTATION_OR_RESIDENT_STRATUM')); END_REPEAT; sftc_t := sftc_s + sftc_sf; REPEAT i := 1 to HIINDEX(sftc_t) BY 1; IF(('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.AREA_COMPONENT' IN TYPEOF(sftc_t[i])) AND (sftc_t[i]\Area_component.is_base = TRUE)) THEN ac := ac + sftc_t[i]; END_IF; END_REPEAT; RETURN(ac);
END_FUNCTION;
FUNCTION get_ims
(input : Stratum) : SET[0:?] OF Product_view_definition;
LOCAL imsar : SET OF Interconnect_module_stratum_assembly_relationship := input.assembly; pvd : SET OF Product_view_definition := []; END_LOCAL; REPEAT i := 1 TO HIINDEX(imsar) BY 1; pvd := pvd + imsar[i].assembly; END_REPEAT; RETURN (pvd);
END_FUNCTION;
FUNCTION get_mrlc_not_for_base
(input1 : Documentation_layer_stratum; base_component : SET[0:?] OF Area_component) : SET[0:?] OF Material_removal_laminate_component;
LOCAL ac: SET OF Area_component := []; i : INTEGER := 0; mrlc : SET OF Material_removal_laminate_component := []; mrlc_b : SET OF Material_removal_laminate_component := []; sf : SET OF Stratum_feature := bag_to_set(USEDIN(input1,'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE.RESIDENT_STRATUM')); sftc_s : SET OF Stratum_feature_template_component := bag_to_set( USEDIN(input1,'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE_TEMPLATE_COMPONENT.IMPLEMENTATION_OR_RESIDENT_STRATUM')); sftc_sf : SET OF Stratum_feature_template_component := []; sftc_t : SET OF Stratum_feature_template_component := []; END_LOCAL; REPEAT i := 1 TO HIINDEX(sf) BY 1; sftc_sf := sftc_sf + bag_to_set(USEDIN(sf[i],'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE_TEMPLATE_COMPONENT.IMPLEMENTATION_OR_RESIDENT_STRATUM')); END_REPEAT; sftc_t := sftc_s + sftc_sf; REPEAT i := 1 to HIINDEX(sftc_t) BY 1; mrlc := mrlc + bag_to_set(USEDIN(sftc_t[i],'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.MATERIAL_REMOVAL_LAMINATE_COMPONENT.DESIGN_INTENT')); END_REPEAT; REPEAT i := 1 to HIINDEX(base_component) BY 1; mrlc_b := mrlc + bag_to_set(USEDIN(base_component[i],'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.MATERIAL_REMOVAL_LAMINATE_COMPONENT.DESIGN_INTENT')); END_REPEAT; RETURN(mrlc - mrlc_b);
END_FUNCTION;
FUNCTION get_resident_stratum
(input : Stratum_feature_template_component) : Stratum;
IF 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE' IN TYPEOF(input.implementation_or_resident_stratum) THEN RETURN(input.implementation_or_resident_stratum.resident_stratum); ELSE IF 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM' IN TYPEOF(input.implementation_or_resident_stratum) THEN RETURN(input.implementation_or_resident_stratum); END_IF; END_IF; RETURN(?);
END_FUNCTION;
FUNCTION limd_get_generic_network
(input1 : SET[0:?] OF Inter_stratum_join_relationship; input2 : SET[0:?] OF Intra_stratum_join_relationship; input3 : SET[0:?] OF Stratum_embedded_physical_component_join_relationship; input4 : SET[0:?] OF Unrouted_join_relationship) : Generic_physical_network;
LOCAL r1 : SET OF Routed_join_relationship := input1 + input2 + input3; u1 : SET OF Unrouted_join_relationship := input4; gpn : SET OF Generic_physical_network := []; END_LOCAL; REPEAT i := 1 TO SIZEOF(r1); gpn := gpn + r1[i]\Routed_join_relationship.network_topology; END_REPEAT; REPEAT i := 1 TO SIZEOF(u1); gpn := gpn + u1[i]\Unrouted_join_relationship.network_topology; END_REPEAT; IF SIZEOF(gpn) <> 1 THEN RETURN(?); ELSE RETURN(gpn[1]); END_IF;
END_FUNCTION;
FUNCTION limd_get_lcp_resident_stratum
(input : SET[0:?] OF Layer_connection_point) : BAG[0:?] OF Design_layer_stratum;
LOCAL s : BAG OF Design_layer_stratum := []; END_LOCAL; REPEAT i := 1 to SIZEOF(input) BY 1; s := s + input[i]\Layer_connection_point.resident_design_layer_stratum; END_REPEAT; RETURN(s);
END_FUNCTION;
FUNCTION limd_get_sz_cp
(input : SET[1:?] OF Conductive_interconnect_element_terminal_link) : INTEGER;
LOCAL ac : SET OF Conductive_interconnect_element_terminal := []; END_LOCAL; REPEAT i := 1 TO HIINDEX(input); ac := ac + input[i]\Conductive_interconnect_element_terminal_link.precedent_point + input[i]\Conductive_interconnect_element_terminal_link.subsequent_point; END_REPEAT; RETURN (SIZEOF(ac));
END_FUNCTION;
END_SCHEMA; -- Layered_interconnect_module_design_arm
© ISO 2018 — All rights reserved