Application module: Layered interconnect complex template | ISO/TS 10303-1716:2018-11(E) © ISO |
This clause specifies the information requirements for the Layered interconnect complex template application module. The information requirements are specified as the Application Reference Model (ARM) of this application module.
NOTE 1 A graphical representation of the information requirements is given in Annex C.
NOTE 2 The mapping specification is specified in 5.1. It shows how the information requirements are met by using common resources and constructs defined or imported in the MIM schema of this application module.
This clause defines the information requirements to which implementations shall conform using the EXPRESS language as defined in ISO 10303-11. The following begins the Layered_interconnect_complex_template_arm schema and identifies the necessary external references.
EXPRESS specification:
*)
SCHEMA Layered_interconnect_complex_template_arm;
(*
The following EXPRESS interface statements specify the elements imported from the ARMs of other application modules.
EXPRESS specification:
*)
USE FROM
Layered_interconnect_simple_template_arm;
--
ISO/TS 10303-1718
USE FROM
Physical_unit_2d_shape_arm;
--
ISO/TS 10303-1726
REFERENCE FROM
Requirement_decomposition_arm
--
ISO/TS 10303-1740
(get_rvd);
REFERENCE FROM
Fabrication_technology_arm
--
ISO/TS 10303-1670
(get_stack);
REFERENCE FROM
Support_resource_arm
--
ISO/TS 10303-1800
(bag_to_set);
(*
NOTE 1 The schemas referenced above are specified in the following part of ISO 10303:
Layered_interconnect_simple_template_arm ISO/TS 10303-1718 Physical_unit_2d_shape_arm ISO/TS 10303-1726 Requirement_decomposition_arm ISO/TS 10303-1740 Fabrication_technology_arm ISO/TS 10303-1670 Support_resource_arm ISO/TS 10303-1800
NOTE 2 See Annex C, Figures C.1, C.2, C.3and C.4 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 land_physical_template_or_inter_stratum_feature_template type allows for the designation of the data types Land_physical_template, and Inter_stratum_feature_template.
EXPRESS specification:
*)
TYPE
land_physical_template_or_inter_stratum_feature_template =
SELECT
(Land_physical_template,
Inter_stratum_feature_template);
END_TYPE;
(*
The lict_part_template_or_physical_unit_2d_shape_select type is an extension of the part_template_or_physical_unit_2d_shape_select type. It adds the data type Part_template_planar_shape_model to the list of alternate data types.
EXPRESS specification:
*)
TYPE
lict_part_template_or_physical_unit_2d_shape_select =
SELECT
BASED_ON
part_template_or_physical_unit_2d_shape_select
WITH
(Part_template_planar_shape_model);
END_TYPE;
(*
The lict_physical_unit_shape_model_select type is an extension of the physical_unit_shape_model_select type. It adds the data type Physical_unit_planar_shape_model to the list of alternate data types.
EXPRESS specification:
*)
TYPE
lict_physical_unit_shape_model_select =
SELECT
BASED_ON
physical_unit_shape_model_select
WITH
(Physical_unit_planar_shape_model);
END_TYPE;
(*
The lict_requirement_assignment_item type is an extension of the requirement_assignment_item type. It adds the data types Structured_template, Template_location_in_structured_template, and Part_template_planar_keepout_shape_model to the list of alternate data types.
EXPRESS specification:
*)
TYPE
lict_requirement_assignment_item =
SELECT
BASED_ON
requirement_assignment_item
WITH
(Structured_template,
Template_location_in_structured_template,
Part_template_planar_keepout_shape_model);
END_TYPE;
(*
The location_stratum_technology_occurrence_or_stratum_technology type allows for the designation of the data types stratum_technology_occurrence_or_stratum_technology, and Template_location_in_structured_template.
EXPRESS specification:
*)
TYPE
location_stratum_technology_occurrence_or_stratum_technology =
SELECT
(stratum_technology_occurrence_or_stratum_technology,
Template_location_in_structured_template);
END_TYPE;
(*
The stratum_technology_occurrence_or_stratum_technology type allows for the designation of the data types Stratum_technology_occurrence, and Stratum_technology.
EXPRESS specification:
*)
TYPE
stratum_technology_occurrence_or_stratum_technology =
SELECT
(Stratum_technology_occurrence,
Stratum_technology);
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
template_arrangement =
ENUMERATION
OF
(top,
bottom,
symmetrical,
swappable);
END_TYPE;
(*
Enumerated item definitions:
top: specifies an arrangement to be top;
bottom: specifies an arrangement to be bottom;
symmetrical: specifies an arrangement to be symmetrical;
swappable: specifies an arrangement to be swappable.
EXPRESS specification:
*)
TYPE
template_location_placement_status =
ENUMERATION
OF
(is_fixed,
must_be_moved_in_design,
may_be_moved_in_design,
is_unknown);
END_TYPE;
(*
Enumerated item definitions:
is_fixed: specifies that the location may not be modified in the design.
EXAMPLE 1 A padstack location for a pin on a bga is fixed in the library.
must_be_moved_in_design: specifies that the location defined is a placeholder and that it must be moved in the design.
NOTE 1 The details of the requirements that would make the location valid are not provided.
EXAMPLE 2 A padstack location for a transformer with wire leads may be underneath the body of the transformer. In that case, the padstack location must be moved in the design in order for the design to be realizeable, but the parametric information as to how far and in what direction to move the padstack in the design are not provided.
may_be_moved_in_design: specifies that the location in the definition is valid but may be moved in the design if desired.
NOTE 2 The details of the requirements that would make a more optimal location are not provided.
EXAMPLE 3 A padstack location for a transformer with wire leads may be outside the body of the transformer. In that case, the padstack location may be moved in the design in order for the design to be more producible, but the parametric information as to how far and in what direction to move the padstack in the design are not provided.
NOTE 3 This part of ISO 10303 does support providing the lead length of a wire lead and even supports a three dimensional model of the lead including the location of the intersection of the lead and the body, but does not explicitly provide a mathematical relationship between that lead model and the padstack location.
is_unknown: specifies that status of the location is unknown.
NOTE 4 This value is provided only for completeness. In most cases, it should be considered an indicator of a possible error in pre-processing. Implementations should carefully consider whether this value should be populated and what action post-processors should take upon receiving this value.
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.
EXPRESS specification:
*)
ENTITY Complex_passage_padstack_definition
SUBTYPE OF (Stratum_stack_dependent_template, Passage_padstack_definition);
END_ENTITY;
(*
A Dependent_electrical_isolation_removal_template is a type of Electrical_isolation_removal_template that has an existence dependency on a member of land_physical_template_or_inter_stratum_feature_template.
NOTE A Dependent_electrical_isolation_removal_template is often used when design intent traceability is desired or where constraint graphs are to be provided.
EXAMPLE Figure 1 illustrates a template and associated annotation designed for electrical isolation. For a specific template, the explicit geometry will be representative of the values. The dependent template shape is the outer shape. The inner shape is the shape of the associated_item.
EXPRESS specification:
*)
ENTITY Dependent_electrical_isolation_removal_template
SUBTYPE OF (Electrical_isolation_removal_template);
associated_item : land_physical_template_or_inter_stratum_feature_template;
WHERE
WR1: SIZEOF(QUERY (dtlipd <* USEDIN(SELF,'LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.TEMPLATE_LOCATION_IN_STRUCTURED_TEMPLATE.TEMPLATE')
|
NOT(
(SIZEOF(QUERY (tlist <* USEDIN(associated_item,'LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.TEMPLATE_LOCATION_IN_STRUCTURED_TEMPLATE.TEMPLATE')
|
NOT(
(tlist\Template_location_in_structured_template.assembly :=:
dtlipd\Template_location_in_structured_template.assembly) AND
('LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.DEPENDENT_TEMPLATE_LOCATION_IN_PADSTACK_DEFINITION' IN TYPEOF(dtlipd)) AND
(tlist :=: dtlipd\Dependent_template_location_in_padstack_definition.reference_location)
)
)) = 0)
)
)) = 0;
END_ENTITY;
(*
Attribute definitions:
associated_item: specifies the role of the land_physical_template_or_inter_stratum_feature_template for the Dependent_electrical_isolation_removal_template.
Formal propositions:
WR1: When a Dependent_electrical_isolation_removal_template is included in a Padstack_definition by a member of Dependent_template_location_in_padstack_definition, the associated_item shall be included in the construction of the Padstack_definition and the assembly relationship (Template_location_in_structured_template) of the associated_item to the Padstack_definition shall be the reference_location for the Dependent_template_location_in_padstack_definition.
A Dependent_template_location_in_padstack_definition is a type of Stratum_specific_template_location. When a Dependent_electrical_isolation_removal_template or a Dependent_thermal_isolation_removal_template is included in a Padstack_definition, the corresponding template referenced by the electrical or thermal template as an associated item is included in the construction of the Padstack_definition.
EXPRESS specification:
*)
ENTITY Dependent_template_location_in_padstack_definition
SUBTYPE OF (Stratum_specific_template_location);
reference_location : location_stratum_technology_occurrence_or_stratum_technology;
SELF\Template_location_in_structured_template.assembly : Multi_stratum_structured_template;
WHERE
WR1: SELF\Stratum_specific_template_location.bound_stratum :<>: reference_location;
WR2: SELF <> reference_location;
WR3: NOT('LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.TEMPLATE_LOCATION_IN_STRUCTURED_TEMPLATE' IN TYPEOF(reference_location))
OR
(assembly :=: reference_location\Template_location_in_structured_template.assembly);
WR4: NOT('LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.STRATUM_STACK_DEPENDENT_TEMPLATE' IN TYPEOF(assembly)) OR
(reference_location IN assembly\Stratum_stack_dependent_template.stack\Stratum_stack_model.composing_occurrence);
WR5: NOT('FABRICATION_TECHNOLOGY_ARM.STRATUM_TECHNOLOGY_OCCURRENCE' IN
TYPEOF(reference_location)) OR
('FABRICATION_TECHNOLOGY_ARM.STRATUM_TECHNOLOGY_OCCURRENCE' IN
TYPEOF(SELF\Stratum_specific_template_location.bound_stratum));
WR6: NOT('FABRICATION_TECHNOLOGY_ARM.STRATUM_TECHNOLOGY_OCCURRENCE' IN
TYPEOF(reference_location)) OR (SIZEOF
(['FABRICATION_TECHNOLOGY_ARM.STRATUM_STACK_DEPENDENT_TEMPLATE',
'FABRICATION_TECHNOLOGY_ARM.PASSAGE_PADSTACK_DEFINITION'] * TYPEOF
(assembly)) = 2);
END_ENTITY;
(*
Attribute definitions:
reference_location: specifies the role of the location_stratum_technology_occurrence_or_stratum_technology for the Dependent_template_location_in_padstack_definition.
assembly: an attribute inherited from the Template_location_in_structured_template shall be redeclared as the Multi_stratum_structured_template for the Dependent_template_location_in_padstack_definition.
Formal propositions:
WR1: The bound_stratum shall not be the reference_location.
WR2: A member of Dependent_template_location_in_padstack_definition shall not also be the member of location_stratum_technology_occurrence_or_stratum_technology referenced by the reference_location.
WR3: The Structured_template referenced by the assembly attribute inherited from Template_location_in_structured_template shall be the same Structured_template in the role of assembly by the Template_location_in_structured_template that is referenced by the reference_location.
WR4: If reference_location is of type Stratum_technology_occurrence, then the reference_location shall be in the same Stratum_stack_model as bound_stratum and the assembly shall be of type Stratum_stack_dependent_template.
WR5: If reference_location is of type Stratum_technology_occurrence, then Stratum_technology_occurrence shall be in typeof bound_stratum inherited from Stratum_specific_template_location.
WR6: If reference_location is of type Stratum_technology_occurrence, then assembly shall be of type Stratum_stack_dependent_template and of type Passage_padstack_definition.
A Dependent_thermal_isolation_removal_template is a type of Thermal_isolation_removal_template that has an existence dependency on a member of land_physical_template_or_inter_stratum_feature_template.
NOTE A Dependent_thermal_isolation_removal_template is often used when design intent traceability is desired or where constraint graphs are to be provided.
EXPRESS specification:
*)
ENTITY Dependent_thermal_isolation_removal_template
SUBTYPE OF (Thermal_isolation_removal_template);
associated_item : Land_physical_template;
WHERE
WR1: SIZEOF(QUERY (dtlipd <* USEDIN(SELF,'LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.TEMPLATE_LOCATION_IN_STRUCTURED_TEMPLATE.TEMPLATE')
|
NOT(
(SIZEOF(QUERY (tlist <* USEDIN(associated_item,'LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.TEMPLATE_LOCATION_IN_STRUCTURED_TEMPLATE.TEMPLATE')
|
NOT(
(tlist\Template_location_in_structured_template.assembly :=:
dtlipd\Template_location_in_structured_template.assembly) AND
('LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.DEPENDENT_TEMPLATE_LOCATION_IN_PADSTACK_DEFINITION' IN TYPEOF(dtlipd)) AND
(tlist :=: dtlipd\Dependent_template_location_in_padstack_definition.reference_location)
)
)) = 0)
)
)) = 0;
END_ENTITY;
(*
Attribute definitions:
associated_item: specifies the role of the Land_physical_template for the Dependent_thermal_isolation_removal_template.
Formal propositions:
WR1: When a Dependent_thermal_isolation_removal_template is included in a Padstack_definition by a member of Dependent_template_location_in_padstack_definition, the associated_item shall be included in the construction of the Padstack_definition and the assembly relationship (Template_location_in_structured_template) of the associated_item to the Padstack_definition shall be the reference_location for the Dependent_template_location_in_padstack_definition.
EXPRESS specification:
*)
ENTITY Design_specific_stratum_technology_mapping_relationship
SUBTYPE OF (Stratum_technology_mapping_relationship);
scope : Library_to_design_stack_model_mapping;
END_ENTITY;
(*
Attribute definitions:
scope: specifies the role of the Library_to_design_stack_model_mapping for the Design_specific_stratum_technology_mapping_relationship.
EXPRESS specification:
*)
ENTITY Inter_stratum_feature_template_location
SUBTYPE OF (Template_location_in_structured_template);
SELF\Template_location_in_structured_template.assembly : Multi_stratum_structured_template;
SELF\Template_location_in_structured_template.template : Inter_stratum_feature_template;
WHERE
WR1: SIZEOF(['LAYERED_INTERCONNECT_SIMPLE_TEMPLATE_ARM.INTER_STRATUM_FEATURE_EDGE_SEGMENT_TEMPLATE',
'LAYERED_INTERCONNECT_SIMPLE_TEMPLATE_ARM.INTER_STRATUM_FEATURE_EDGE_TEMPLATE'] * TYPEOF(template)) = 0;
END_ENTITY;
(*
Attribute definitions:
assembly: an attribute inherited from the Template_location_in_structured_template shall be redeclared as the Multi_stratum_structured_template for the Inter_stratum_feature_template_location.
template: an attribute inherited from the Template_location_in_structured_template shall be redeclared as the Inter_stratum_feature_template for the Inter_stratum_feature_template_location.
Formal propositions:
WR1: The Inter_stratum_feature_edge_segment_template and the Inter_stratum_feature_edge_template shall not be in type of template.
EXPRESS specification:
*)
ENTITY Library_stack_model
SUBTYPE OF (Stratum_stack_model);
DERIVE
padstacks : SET[0:?] OF Padstack_definition := bag_to_set(QUERY(p <* USEDIN(SELF,
'LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.STRATUM_STACK_DEPENDENT_TEMPLATE.STACK') | ('LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.PADSTACK_DEFINITION'
IN TYPEOF(p))));
END_ENTITY;
(*
Attribute definitions:
padstacks: specifies a set of the Padstack_definition for the Library_stack_model.
EXPRESS specification:
*)
ENTITY Library_to_design_stack_model_mapping
SUBTYPE OF (View_definition_relationship);
SELF\View_definition_relationship.relating_view : Library_stack_model;
SELF\View_definition_relationship.related_view : Design_stack_model;
WHERE
WR1: ((related_view\Stratum_stack_model.composing_occurrence *
relating_view\Stratum_stack_model.composing_occurrence) =
related_view\Stratum_stack_model.composing_occurrence);
WR2: acyclic_library_to_design_stack_model_mapping(SELF, [related_view],
'LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.LIBRARY_TO_DESIGN_STACK_MODEL_MAPPING');
END_ENTITY;
(*
Attribute definitions:
relating_view: specifies the role of the Library_stack_model for the Library_to_design_stack_model_mapping.
related_view: specifies the role of the Design_stack_model for the Library_to_design_stack_model_mapping.
Formal propositions:
WR1: The composition of the Design_stack_model shall be a subset of the composition of the Library_stack_model.
WR2: The graph of instances of the Application Object Library_to_design_stack_model_mapping shall not contain a cycle.
EXPRESS specification:
*)
ENTITY Material_removal_structured_template
SUBTYPE OF (Single_stratum_structured_template);
WHERE
WR1: SIZEOF(QUERY(tlict <* SELF\Structured_template.templates |
SIZEOF(['LAYERED_INTERCONNECT_SIMPLE_TEMPLATE_ARM.MATERIAL_REMOVAL_FEATURE_TEMPLATE',
'LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.MATERIAL_REMOVAL_STRUCTURED_TEMPLATE'] * TYPEOF(tlict.template)) = 0)) = 0;
END_ENTITY;
(*
Formal propositions:
WR1: All members of templates shall be of type Material_removal_feature_template or Material_removal_structured_template.
EXPRESS specification:
*)
ENTITY Multi_stratum_special_symbol_template
SUBTYPE OF (Multi_stratum_structured_template, Special_symbol_template);
END_ENTITY;
(*
A Multi_stratum_structured_template is a type of Structured_template. A Multi_stratum_structured_template is either a Padstack_definition or a Multi_stratum_special_symbol_template, or a Stratum_stack_dependent_template, or a Padstack_definition and a Stratum_stack_dependent_template, or a Multi_stratum_special_symbol_template and a Stratum_stack_dependent_template.
NOTE 1 Swappable templates are most often used to tailor the interconnect interface to the components mounted on a specific surface of the interconnect, but may be used for test access. It is usual in a library definition to provide a definition for only the top case and then use swap relationships in instantiation in the design. Bottom and symmetrical are provided for completeness.
NOTE 2 A swappable stratum technology or a swappable stratum technology occurrence will be provided when the Multi_stratum_structured_template is swappable.
EXPRESS specification:
*)
ENTITY Multi_stratum_structured_template
ABSTRACT SUPERTYPE
OF (ONEOF (Padstack_definition,
Multi_stratum_special_symbol_template)
ANDOR Stratum_stack_dependent_template)
SUBTYPE OF (Structured_template);
location : template_arrangement;
END_ENTITY;
(*
Attribute definitions:
location: specifies the role of the template_arrangement for the Multi_stratum_structured_template.
EXPRESS specification:
*)
ENTITY Padstack_definition
SUPERTYPE OF (Passage_padstack_definition)
SUBTYPE OF (Multi_stratum_structured_template);
WHERE
WR1: NOT('LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.PASSAGE_PADSTACK_DEFINITION' IN TYPEOF(SELF)) XOR
(SIZEOF(QUERY(tlict <* SELF\Structured_template.templates |
('LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.INTER_STRATUM_FEATURE_TEMPLATE_LOCATION' IN TYPEOF(tlict)))) > 0);
WR2: SIZEOF(QUERY(tlict <* SELF\Structured_template.templates |
(NOT ('LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.INTER_STRATUM_FEATURE_TEMPLATE_LOCATION' IN TYPEOF(tlict))) AND
(NOT ('LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.STRATUM_SPECIFIC_TEMPLATE_LOCATION' IN TYPEOF(tlict))))) = 0;
END_ENTITY;
(*
Formal propositions:
WR1: The Product refered by of_product of defined_version shall be assigned by Product_category_assignment to at least one Product_category with name 'template model'.
WR2: The Inter_stratum_feature_template_location is allowed to be a member of templates only for Passage_padstack_definition.
Informal propositions:
IP1: The interpretation of Padstack_definition for an implementation that is converting the hierarchical representation in Padstack_definition into a flat design description shall be that in the context of a Padstack_definition only one template of a specific type shall reference a specific stratum technology or stratum technology occurrence.
NOTE The intent of Informal Proposition three is to eliminate ambiguity for post-processors because there is no way to distinguish between templates that reference the same stratum technology or stratum technology occurence. Because there is no way to distinguish between those templates, having multiple templates available during the conversion of the hierachical representation to a flat design description would lead to inconsistent conversion results between different post-processor implementations.
A Part_template_keepout_shape_allocation_to_stratum_stack is an allocation of a specific Part_template_keepout_shape_model to a subset of a stackup model.
EXPRESS specification:
*)
ENTITY Part_template_keepout_shape_allocation_to_stratum_stack;
keepout_shape : Part_template_keepout_shape_model;
kept_out_layers : SET[1:?] OF Stratum_technology_occurrence;
DERIVE
swappable : LOGICAL := (keepout_shape.shape_characterized_definition\Multi_stratum_structured_template.location
= template_arrangement.swappable);
stack_model : Library_stack_model := keepout_shape.shape_characterized_definition\Stratum_stack_dependent_template.stack;
UNIQUE
UR1: keepout_shape, stack_model;
WHERE
WR1: keepout_shape.constrained_design_object_category
IN [keepout_product_design_object_category.interconnect_module_via,
keepout_product_design_object_category.interconnect_module_inter_stratum_feature,
keepout_product_design_object_category.interconnect_module_cutout,
keepout_product_design_object_category.interconnect_module_fill_area,
keepout_product_design_object_category.interconnect_module_stratum_feature];
WR2: 'LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.STRATUM_STACK_DEPENDENT_TEMPLATE' IN TYPEOF(keepout_shape.shape_characterized_definition);
WR3: kept_out_layers = kept_out_layers * stack_model\Stratum_stack_model.composing_occurrence;
END_ENTITY;
(*
Attribute definitions:
keepout_shape: specifies the role of the Part_template_keepout_shape_model for the Part_template_keepout_shape_allocation_to_stratum_stack.
kept_out_layers: specifies the role of the Stratum_technology_occurrence for the Part_template_keepout_shape_allocation_to_stratum_stack. There shall exist one or more Stratum_technology_occurrences for the Part_template_keepout_shape_allocation_to_stratum_stack.
swappable: if swappable is true, then Stratum_technology_occurrences specified in kept_out_layers will be swapped in accordance with the appropriate Stratum_technology_occurrence_swap_relationships, when an instance of the product represented by keepout_shape is placed on the bottom side of the board. If swappable is not true then the Stratum_technology_occurrence_swap_relationship shall be ignored as no swapping is allowed.
NOTE The Stratum_technology_occurrence_swap_relationships are the specification of the swapping to be performed when permitted by the swappable attribute.
stack_model: specifies the role of the Library_stack_model for the Part_template_keepout_shape_allocation_to_stratum_stack.
Formal propositions:
UR1: The keepout_shape shall be unique within a population of Part_template_keepout_shape_allocation_to_stratum_stack.
WR1: The constrained_design_object_category of keepout_shape shall be set to one of: interconnect_module_via, interconnect_module_inter_stratum_feature, interconnect_module_cutout, interconnect_module_fill_area, interconnect_module_stratum_feature.
WR2: Only a Stratum_stack_dependent_template shall be in the role of shape_characterized_definition for the shape referenced by the keepout_shape.
WR3: The kept_out_layers shall be a subset of the composing_occurrence of the stack_model.
A Part_template_planar_keepout_shape_model is a type of Planar_shape_model, Non_feature_shape_model and Part_template_keepout_shape_model. A Part_template_planar_keepout_shape_model is the projected shape of a keepout region around the Template_definition in two dimensions.
NOTE 1 Keepout regions typically include some minimal spacing around the extreme shape represented by Part_template_planar_shape_model where the exact relationship between the two shapes is unrecorded.
NOTE 2 There may be multiple Part_template_planar_keepout_shape_model for a particular purpose. The recommended method to aggregate several Part_template_planar_keepout_shape_model that together describe a volumetric constraint is to reference them from a member of Shape_and_view_based_constraint_occurrence.
EXPRESS specification:
*)
ENTITY Part_template_planar_keepout_shape_model
SUBTYPE OF (Planar_shape_model, Non_feature_shape_model, Part_template_keepout_shape_model);
SELF\Non_feature_shape_model.model_shape : Part_template_planar_shape_model;
DERIVE
application_technology_constraint : SET[0:?] OF Requirement_view_definition := get_rvd(SELF, 'application technology constraint');
WHERE
WR1: (SIZEOF(application_technology_constraint) <= 1);
WR2: NOT EXISTS(SELF\Representation.description);
END_ENTITY;
(*
Attribute definitions:
model_shape: an attribute inherited from the Non_feature_shape_model shall be redeclared as the Part_template_planar_shape_model for the Part_template_planar_keepout_shape_model.
application_technology_constraint: specifies the Requirement_view_definition that is refered by assigned_requirement of Requirement_assignment that has id set to 'application technology constraint' and refers this Part_template_planar_keepout_shape_model as assigned_to.
Formal propositions:
WR1: If application_technology_constraint exists, then it's size shall be one.
WR2: The description shall not be populated.
EXPRESS specification:
*)
ENTITY Part_template_planar_shape_model
SUBTYPE OF (Planar_projected_shape_model, Part_template_shape_model);
WHERE
WR1: NOT EXISTS(SELF\Representation.description);
END_ENTITY;
(*
Formal propositions:
WR1: The description shall not be populated.
A Passage_padstack_definition is a type of Padstack_definition that references a specific Passage_technology. Passage_padstack_definition inherits from Structured_template the ability to specify dependency between elements in the structure with the effect that the items defined by the dependent elements shall be populated in a design in accordance with the structure.
NOTE 1 The specific Passage_technology. is identified by following the path that starts at the Inter_stratum_feature_template_location in the role of reference_isft.
NOTE 2 Dependent_template_location_in_padstack_definition is populated to describe the dependency relationship between members of the structure of a Passage_padstack_definition.
EXAMPLE 1 A Passage_padstack_definition includes a passage, several land templates and several soldermask templates. There is a Dependent_template_location_in_padstack_definition that would reference the land template assembly relationship Template_location_in_structured_template as a reference_location so as to communicate that soldermask opening is required when the land is instantiated in the design.
EXAMPLE 2 A Passage_padstack_definition includes a passage, several land templates and several electrical isolation templates. One electrical isolation template is previously established as being a Dependent_electrical_isolation_removal_template with the relationship associated_item referencing a land template. During construction of the Passage_padstack_definition there is a reference_location established between the electrical isolation template assembly relationship and a land template assembly relationship so as to communicate that electrical isolation opening is required when the land is instantiated in the design on a power layer where the signal value is different between the land and the power layer.
EXAMPLE 3 A Passage_padstack_definition includes a passage, several land templates and several electrical isolation templates. One electrical isolation template is previously established as being a Dependent_electrical_isolation_removal_template with the relationship associated_item referencing an inter stratum feature template. During construction of the Passage_padstack_definition there is a reference_location established between the electrical isolation template assembly relationship and an inter stratum feature template assembly relationship so as to communicate that electrical isolation opening is required when the passage is instantiated in the design and passes through a power layer where the signal value is different between the passage and the power layer.
EXAMPLE 4 A Passage_padstack_definition includes a passage, several land templates and several thermal isolation templates. One thermal isolation template is previously established as being a Dependent_thermal_isolation_removal_template with the relationship associated_item referencing a land template. During construction of the Passage_padstack_definition there is a reference_location established between the thermal isolation template assembly relationship and a land template assembly relationship so as to communicate that thermal isolation is required when the land is instantiated in the design on a power layer where the signal of the land and the power layer are the same.
NOTE 3 Population constraints exist on Dependent_template_location_in_padstack_definition to ensure that when a Dependent_electrical_isolation_removal_template or a Dependent_thermal_isolation_removal_template is included in a Passage_padstack_definition, the corresponding template referenced by reference_location is included in the construction of the same Passage_padstack_definition.
EXPRESS specification:
*)
ENTITY Passage_padstack_definition
SUBTYPE OF (Padstack_definition);
INVERSE
reference_isft : Inter_stratum_feature_template_location FOR assembly;
WHERE
WR1: NOT(('LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.STRUCTURED_INTER_STRATUM_FEATURE_TEMPLATE' IN TYPEOF(reference_isft.template))
XOR
('LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.COMPLEX_PASSAGE_PADSTACK_DEFINITION' IN TYPEOF(SELF)));
END_ENTITY;
(*
Attribute definitions:
reference_isft: specifies an inverse relationship that specifies that the existence of the Passage_padstack_definition is dependent on the existence of the Inter_stratum_feature_template_location that specifies the Passage_padstack_definition as its assembly.
Formal propositions:
WR1: Passage_padstack_definition shall be a Complex_passage_padstack_definition if and only if reference_isft.template is a Structured_inter_stratum_feature_template.
Informal propositions:
IP1: The interpretation of Passage_padstack_definition for an implementation that is converting the hierarchical representation in Passage_padstack_definition into a flat design description shall be that a land shall be instantiated only on those stratum that are allocated to the passage by a member of Passage_technology_allocation_to_stack_model and that have a Stratum_specific_template_location provided for that stratum technology.
IP2: The interpretation of Passage_padstack_definition for an implementation that is converting the hierarchical representation in Passage_padstack_definition into a flat design description after Informal Proposition 1 is applied is to iterate over all Stratum_specific_template_location found in applying Informal Proposition 1 and for each member found, find all Dependent_template_location_in_padstack_definition that reference that member of Stratum_specific_template_location and instantiate a feature on each stratum that specifies the same stratum technology as specified by the Stratum_specific_template_location.
A Physical_unit_keepout_shape_allocation_to_stratum_stack is an allocation of a specific Physical_unit_keepout_shape_model to a subset of a stackup model.
NOTE 1 The purpose is to allow a generic keepout model in a package library while retaining the ability to associate specific keepout models to specific technologies.
EXAMPLE All layer 1 through 6 Vias may be kept out of a specific point domain of a specific stackup model established by a keepout model of a package using Physical_unit_keepout_shape_allocation_to_stratum_stack. In this example the point domain applies in a design system to the horizontal extent in the appropriate stratum surrounding the placement of the footprint related to the package in the interconnect design.
EXPRESS specification:
*)
ENTITY Physical_unit_keepout_shape_allocation_to_stratum_stack;
keepout_shape : Physical_unit_keepout_shape_model;
stack_model : Library_stack_model;
swappable : BOOLEAN;
kept_out_layers : SET[1:?] OF Stratum_technology_occurrence;
UNIQUE
UR1: keepout_shape, stack_model;
WHERE
WR1: keepout_shape\Physical_unit_keepout_shape_model.constrained_design_object_category
IN [keepout_product_design_object_category.interconnect_module_via,
keepout_product_design_object_category.interconnect_module_inter_stratum_feature,
keepout_product_design_object_category.interconnect_module_cutout,
keepout_product_design_object_category.interconnect_module_fill_area,
keepout_product_design_object_category.interconnect_module_stratum_feature];
END_ENTITY;
(*
Attribute definitions:
keepout_shape: specifies the role of the Physical_unit_keepout_shape_model for the Physical_unit_keepout_shape_allocation_to_stratum_stack.
stack_model: specifies the role of the Library_stack_model for the Physical_unit_keepout_shape_allocation_to_stratum_stack.
swappable: if swappable is true, then Stratum_technology_occurrences specified in kept_out_layers will be swapped in accordance with the appropriate Stratum_technology_occurrence_swap_relationships, when an instance of the product represented by keepout_shape is placed on the bottom side of the board. If swappable is not true then the Stratum_technology_occurrence_swap_relationship shall be ignored as no swapping is allowed.
NOTE 2 The Stratum_technology_occurrence_swap_relationships are the specification of the swapping to be performed when permitted by the swappable attribute.
kept_out_layers: specifies the role of the Stratum_technology_occurrence for the Physical_unit_keepout_shape_allocation_to_stratum_stack. There shall exist one or more Stratum_technology_occurrences for the Physical_unit_keepout_shape_allocation_to_stratum_stack.
Formal propositions:
UR1: The combination of keepout_shape and stack_model shall be unique within a population of Physical_unit_keepout_shape_allocation_to_stratum_stacks.
WR1: The constrained_design_object_category of keepout_shape shall be set to one of: interconnect_module_via, interconnect_module_inter_stratum_feature, interconnect_module_cutout, interconnect_module_fill_area, interconnect_module_stratum_feature.
EXPRESS specification:
*)
ENTITY Physical_unit_keepout_shape_allocation_to_stratum_technology;
keepout_shape : Physical_unit_keepout_shape_model;
kept_out_technologies : SET[1:?] OF Stratum_technology;
WHERE
WR1: keepout_shape\Physical_unit_keepout_shape_model.constrained_design_object_category
IN [keepout_product_design_object_category.interconnect_module_via,
keepout_product_design_object_category.interconnect_module_inter_stratum_feature,
keepout_product_design_object_category.interconnect_module_cutout,
keepout_product_design_object_category.interconnect_module_fill_area,
keepout_product_design_object_category.interconnect_module_stratum_feature];
END_ENTITY;
(*
Attribute definitions:
keepout_shape: specifies the role of the Physical_unit_keepout_shape_model for the Physical_unit_keepout_shape_allocation_to_stratum_technology.
kept_out_technologies: specifies the role of the Stratum_technology for the Physical_unit_keepout_shape_allocation_to_stratum_technology. There shall exist one or more Stratum_technologies for the Physical_unit_keepout_shape_allocation_to_stratum_technology.
Formal propositions:
WR1: The constrained_design_object_category of keepout_shape shall be set to one of: interconnect_module_via, interconnect_module_inter_stratum_feature, interconnect_module_cutout, interconnect_module_fill_area, interconnect_module_stratum_feature.
EXPRESS specification:
*)
ENTITY Single_stratum_special_symbol_template
SUBTYPE OF (Single_stratum_structured_template, Special_symbol_template);
END_ENTITY;
(*
EXPRESS specification:
*)
ENTITY Single_stratum_structured_template
ABSTRACT SUPERTYPE
OF (ONEOF (Material_removal_structured_template,
Single_stratum_special_symbol_template))
SUBTYPE OF (Structured_template, Single_stratum_template);
WHERE
WR1: SIZEOF (QUERY(tp <* SELF\Structured_template.templates |
NOT ('LAYERED_INTERCONNECT_SIMPLE_TEMPLATE_ARM.SINGLE_STRATUM_TEMPLATE' IN TYPEOF(tp.template))
)) = 0;
END_ENTITY;
(*
Formal propositions:
WR1: Only Single_stratum_template shall help to compose a Single_stratum_structured_template.
EXPRESS specification:
*)
ENTITY Special_symbol_template
ABSTRACT SUPERTYPE
OF (ONEOF (Single_stratum_special_symbol_template,
Multi_stratum_special_symbol_template))
SUBTYPE OF (Template_definition);
END_ENTITY;
(*
EXPRESS specification:
*)
ENTITY Stratum_specific_template_location
SUBTYPE OF (Template_location_in_structured_template);
bound_stratum : stratum_technology_occurrence_or_stratum_technology;
SELF\Template_location_in_structured_template.template : Single_stratum_template;
WHERE
WR1: NOT('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.DOCUMENTATION_LAYER_TECHNOLOGY' IN TYPEOF(bound_stratum)) OR
(NOT EXISTS(bound_stratum\Documentation_layer_technology.pre_defined_documentation_layer_purpose) OR
(NOT (bound_stratum\Documentation_layer_technology.pre_defined_documentation_layer_purpose = predefined_documentation_layer_purpose.soldermask)
OR
('LAYERED_INTERCONNECT_SIMPLE_TEMPLATE_ARM.MATERIAL_REMOVAL_FEATURE_TEMPLATE' IN TYPEOF(template))));
WR2: NOT(('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_TECHNOLOGY_OCCURRENCE' IN TYPEOF(bound_stratum)) AND
('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.DOCUMENTATION_LAYER_TECHNOLOGY' IN TYPEOF(bound_stratum\Stratum_technology_occurrence.definition)))
OR
(NOT EXISTS(bound_stratum\Stratum_technology_occurrence.definition\Documentation_layer_technology.pre_defined_documentation_layer_purpose)
OR
(NOT (bound_stratum\Stratum_technology_occurrence.definition\Documentation_layer_technology.pre_defined_documentation_layer_purpose
= predefined_documentation_layer_purpose.soldermask) OR
('LAYERED_INTERCONNECT_SIMPLE_TEMPLATE_ARM.MATERIAL_REMOVAL_FEATURE_TEMPLATE' IN TYPEOF(template))));
WR3: NOT ('FABRICATION_TECHNOLOGY_ARM.STRATUM_TECHNOLOGY_OCCURRENCE' IN TYPEOF(bound_stratum)) OR
('LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.STRATUM_STACK_DEPENDENT_TEMPLATE' IN TYPEOF(SELF\Template_location_in_structured_template.assembly));
END_ENTITY;
(*
Attribute definitions:
bound_stratum: specifies the role of the stratum_technology_occurrence_or_stratum_technology for the Stratum_specific_template_location.
template: an attribute inherited from the Template_location_in_structured_template shall be redeclared as the Single_stratum_template for the Stratum_specific_template_location.
Formal propositions:
WR1: If bound_stratum is of type Documentation_layer_technology and if its pre_defined_documentation_layer_purpose is set to soldermask, then type of template shall be Material_removal_feature_template.
WR2: If bound_stratum is of type Stratum_technology_occurrence and its definition is of type Documentation_layer_technology with pre_defined_documentation_layer_purpose set to soldermask, then type of template shall be Material_removal_feature_template.
WR3: If type of bound_stratum is Stratum_technology_occurrence, then type of assembly shall be Stratum_stack_dependent_template.
EXPRESS specification:
*)
ENTITY Stratum_stack_dependent_template
SUPERTYPE OF (ONEOF (Complex_passage_padstack_definition,
Structured_inter_stratum_feature_template))
SUBTYPE OF (Multi_stratum_structured_template);
stack : Library_stack_model;
WHERE
WR1: SIZEOF(QUERY(temp <* SELF\Structured_template.templates |
('LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.STRATUM_SPECIFIC_TEMPLATE_LOCATION' IN TYPEOF(temp))
AND (NOT ('FABRICATION_TECHNOLOGY_ARM.STRATUM_TECHNOLOGY_OCCURRENCE' IN TYPEOF(temp\Stratum_specific_template_location.bound_stratum))
OR
NOT (temp\Stratum_specific_template_location.bound_stratum IN stack\Stratum_stack_model.composing_occurrence)
))) = 0;
WR2: TYPEOF(SELF) <> ['LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.STRATUM_STACK_DEPENDENT_TEMPLATE',
'LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.MULTI_STRATUM_STRUCTURED_TEMPLATE',
'LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.STRUCTURED_TEMPLATE',
'PART_TEMPLATE_SHAPE_WITH_PARAMETERS_ARM.GEOMETRIC_TEMPLATE',
'PART_TEMPLATE_ARM.TEMPLATE_DEFINITION',
'PRODUCT_VIEW_DEFINITION_ARM.PRODUCT_VIEW_DEFINITION'];
END_ENTITY;
(*
Attribute definitions:
stack: specifies the role of the Library_stack_model for the Stratum_stack_dependent_template.
Formal propositions:
WR1: All templates that are of type Stratum_specific_template_location shall have Stratum_technology_occurrence in role of bound_stratum and that Stratum_technology_occurrence shall be a member of composing_occurrence of stack.
WR2: At least one other Application Object instance shall help compose an instance of Stratum_stack_dependent_template.
EXPRESS specification:
*)
ENTITY Structured_inter_stratum_feature_template
SUBTYPE OF (Inter_stratum_feature_template, Stratum_stack_dependent_template);
END_ENTITY;
(*
EXPRESS specification:
*)
ENTITY Structured_template
ABSTRACT SUPERTYPE
OF (ONEOF (Single_stratum_structured_template,
Multi_stratum_structured_template))
SUBTYPE OF (Geometric_template);
DERIVE
empty : LOGICAL := (SIZEOF(templates) = 0);
INVERSE
SELF\Geometric_template.shapes : SET[1:?] OF Structured_template_planar_shape_model FOR shape_characterized_definition;
templates : SET[0:?] OF Template_location_in_structured_template FOR assembly;
END_ENTITY;
(*
Attribute definitions:
empty: specifies that the number of templates that compose the Structured_template is zero when the value is true. A Structured_template whose empty attribute is true is an incompletely modeled structure.
NOTE 1 For consistent design flow processing it may be necessary to populate a Structured_template in order to convey a type declaration even though the actual contents is not available until later in the design flow.
NOTE 2 For archival storage it would be abnormal for the empty attribute to be true.
shapes: an inverse relationship that specifies that the existence of the Structured_template is dependent on the existence of the Structured_template_planar_shape_model that specifies the Structured_template as its shape_characterized_definition. There shall be one or more Structured_template_planar_shape_models for a Structured_template.
templates: an inverse relationship that specifies that the existence of the Structured_template is dependent on the existence of the Template_location_in_structured_template that specifies the Structured_template as its assembly. There shall be one or more Template_location_in_structured_templates for a Structured_template.
EXPRESS specification:
*)
ENTITY Structured_template_planar_shape_model
SUBTYPE OF (Part_template_planar_shape_model);
SELF\Part_template_shape_model.shape_characterized_definition : SET[1:1] OF Structured_template;
END_ENTITY;
(*
Attribute definitions:
shape_characterized_definition: an attribute inherited from the Part_template_planar_shape_model shall be redeclared as the Structured_template for the Structured_template_planar_shape_model. There shall exist exactly one Structured_template for the Structured_template_planar_shape_model.
A Template_location_in_structured_template is the relationship that identifies the location of a Template_definition in a Structured_template. A Template_location_in_structured_template may be an Inter_stratum_feature_template_location or a Stratum_specific_template_location. There is exactly one Template_location_in_structured_template_transform allowed to reference a Template_location_in_structured_template. There is an optional reference to the parametric data necessary to define the shape of material to be added at the intersection of the assembly occurrence and the trace that intersects that occurrence. A parametric model is provided and not an explicit shape model because the actual angle the trace makes with respect to the assembly occurrence is unknown, and there may be more than one intersection. This model only provides support for one parametric configuration for this data for the Template_location_in_structured_template. In the event that trimming of a shape between the trace and the assembly occurrence is to be exchanged, the use of an instance in the design of Material_removal_feature_template is appropriate. If the transform attribute exists, then the parametric data shall not be provided. If the parametric data is provided, the transform shall not be provided.
NOTE The Padstack_definition is a geometric shape concept with the result that this requires exactly one shape for the Template_definition used in a location.
EXPRESS specification:
*)
ENTITY Template_location_in_structured_template
SUPERTYPE OF (ONEOF (Inter_stratum_feature_template_location,
Stratum_specific_template_location));
assembly : Structured_template;
template : Template_definition;
reference_designation : STRING;
placement_status : template_location_placement_status;
INVERSE
transform : SET[0:?] OF Template_location_in_structured_template_transform FOR reference_location;
UNIQUE
UR1: assembly, reference_designation;
WHERE
WR1: (SIZEOF(transform) > 0) XOR ('LAYERED_INTERCONNECT_SIMPLE_TEMPLATE_ARM.TEARDROP_TEMPLATE' IN TYPEOF(template));
WR2: NOT ('LAYERED_INTERCONNECT_SIMPLE_TEMPLATE_ARM.INTER_STRATUM_FEATURE_TEMPLATE' IN TYPEOF(template)) OR
('LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.INTER_STRATUM_FEATURE_TEMPLATE_LOCATION' IN TYPEOF(SELF));
WR3: SIZEOF(['LAYERED_INTERCONNECT_SIMPLE_TEMPLATE_ARM.TEARDROP_TEMPLATE',
'PART_TEMPLATE_SHAPE_WITH_PARAMETERS_ARM.GEOMETRIC_TEMPLATE'] *
TYPEOF(template)) > 0;
END_ENTITY;
(*
Attribute definitions:
assembly: specifies the Structured_template for the Template_location_in_structured_template.
template: specifies the Template_definition for the Template_location_in_structured_template.
reference_designation: specifies the text that describes the Template_location_in_structured_template.
placement_status: specifies the role of the template_location_placement_status for the Template_location_in_structured_template.
transform: an inverse relationship that specifies that the existence of the Template_location_in_structured_template is dependent on the existence of the Template_location_in_structured_template_transform that specifies the Template_location_in_structured_template as its reference_location. There shall be zero or one Template_location_in_structured_template_transform for a Template_location_in_structured_template.
Formal propositions:
UR1: The combination of assembly and reference_designation shall be unique within a population of Template_location_in_structured_templates.
WR1: The transform shall not be provided if template is of type Teardrop_template and shall be provided otherwise.
WR2: The template shall not be of type Inter_stratum_feature_template, unless Inter_stratum_feature_template_location is in type of self.
WR3: The template shall be of type Geometric_template or Teardrop_template.
EXPRESS specification:
*)
ENTITY Template_location_in_structured_template_transform
SUBTYPE OF (Geometric_placement);
SELF\Geometric_placement_operation.template_definition RENAMED template_shape : Part_template_planar_shape_model;
reference_location : Template_location_in_structured_template;
assembly_shape : Structured_template_planar_shape_model;
SELF\Geometric_placement.target RENAMED transform : Axis_placement_2d;
UNIQUE
UR1: reference_location, assembly_shape;
WHERE
WR1: assembly_shape.shape_characterized_definition[1] :=: reference_location.assembly;
END_ENTITY;
(*
Attribute definitions:
template_shape: specifies the Part_template_planar_shape_model for the Template_location_in_structured_template_transform.
reference_location: specifies the Template_location_in_structured_template for the Template_location_in_structured_template_transform.
assembly_shape: specifies the Structured_template_planar_shape_model for the Template_location_in_structured_template_transform.
transform: specifies the Axis_placement_2d for the Template_location_in_structured_template_transform.
Formal propositions:
UR1: The combination of reference_location and assembly_shape shall be unique within a population of Template_location_in_structured_template_transforms.
WR1: Any member of the shape_characterized_definition of template_shape shall refer same entity instance as template of reference_location.
A Thermal_isolation_removal_template is a type of Material_removal_structured_template that describes the shape of material to be removed from a feature to satisfy a thermal isolation requirement.
EXAMPLE Figure 2 illustrates a template and associated annotation designed for thermal isolation. For a specific template, the explicit geometry will be representative of the annotation values. The individual shapes are helping to compose the overall shape through the structure inherited from Material_removal_structured_template. The position datum is at the origin.
EXPRESS specification:
*)
ENTITY Thermal_isolation_removal_template
SUBTYPE OF (Material_removal_structured_template);
DERIVE
thermal_isolation_spacing_requirement : SET[0:?] OF Requirement_view_definition := get_rvd(SELF, 'thermal requirement');
WHERE
WR1: SIZEOF(QUERY(tisr <* THERMAL_ISOLATION_SPACING_REQUIREMENT |
NOT('INTERCONNECT_PHYSICAL_REQUIREMENT_ALLOCATION_ARM.THERMAL_ISOLATION_REQUIREMENT' IN TYPEOF(tisr))
)) =0;
END_ENTITY;
(*
Attribute definitions:
thermal_isolation_spacing_requirement: specifies the role of the Requirement_view_definition for the Thermal_isolation_removal_template. There shall exist one or more Requirement_view_definitions for the Thermal_isolation_removal_template.
Formal propositions:
WR1: The thermal_isolation_spacing_requirement shall be of type Thermal_isolation_requirement.
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 lict_geometric_template_subtypes constraint specifies a constraint that applies to instances of Geometric_template and enforces the rule that its subtypes Continuous_template and Structured_template are exclusive.
EXPRESS specification:
*)
SUBTYPE_CONSTRAINT lict_geometric_template_subtypes FOR Geometric_template;
ONEOF (Continuous_template,
Structured_template);
END_SUBTYPE_CONSTRAINT;
(*
The stratum_stack_model_subtypes constraint specifies a constraint that applies to instances of Stratum_stack_model and enforces the rule that its subtypes Design_stack_model and Library_stack_model are exclusive.
EXPRESS specification:
*)
SUBTYPE_CONSTRAINT stratum_stack_model_subtypes FOR Stratum_stack_model;
ONEOF (Design_stack_model,
Library_stack_model);
END_SUBTYPE_CONSTRAINT;
(*
This subclause specifies the ARM function for this module. The ARM function and definition is specified below.
EXPRESS specification:
*)
FUNCTION acyclic_library_to_design_stack_model_mapping (relation : Library_to_design_stack_model_mapping; relatives : SET[1:?] OF Stratum_stack_model; specific_relation : STRING) : BOOLEAN;
LOCAL x : SET OF Library_to_design_stack_model_mapping := []; END_LOCAL; IF relation.relating_view IN relatives THEN RETURN (FALSE); END_IF; x := QUERY(pd <* bag_to_set(USEDIN(relation.relating_view, 'LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.' + 'LIBRARY_TO_DESIGN_STACK_MODEL_MAPPING.' + 'RELATED_VIEW')) | specific_relation IN TYPEOF(pd)); REPEAT i := 1 TO HIINDEX(x); IF NOT acyclic_library_to_design_stack_model_mapping(x[i], relatives + relation.relating_view, specific_relation) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE);
END_FUNCTION;
(*
Argument definitions:
relation: the specified Library_to_design_stack_model_mapping.
relatives: the set of specified Design_stack_model.
specific_relation: the specified STRING.
*)
END_SCHEMA; -- Layered_interconnect_complex_template_arm
(*
© ISO 2018 — All rights reserved