FUNCTION limdwpcd_get_stolrs
(input1 : SET [0:?] OF stratum_technology_occurrence_link_armx, input2 : SET [0:?] OF product_view_definition) : SET [0:?] OF stratum_armx;
LOCAL s0 : SET OF Stratum_armx := []; --this gives us access TO the information base FOR stratum that REFERENCE sto sto : SET OF Stratum_technology_occurrence_armx := []; --this gives us access TO the information base imsar : SET OF Interconnect_module_stratum_assembly_relationship := []; s1 : SET OF Stratum_armx := []; --this gives us access TO the information base FOR stratum that are referenced BY the assembly relationship TO the input2 s2 : SET OF Stratum_armx := []; --this gives us access TO the information base FOR stratum that are related TO both input1 AND input2 i : INTEGER := 0; -- variable representing the member OF input2 that is the context FOR the function END_LOCAL; (* initial implementation only supports examining the first Product_view_definition AS the stratum stack is NOT expected TO change over the design cycle. *) (* depends on the UNIQUE constraint on stratum.definition IN an assembly context *)
REPEAT i := 1 TO 1 BY 1; REPEAT j := 1 TO SIZEOF(input1) BY 1; sto := sto + input1[j]\Stratum_technology_occurrence_relationship_armx.sto_1 + input1[j]\Stratum_technology_occurrence_relationship_armx.sto_2; END_REPEAT; REPEAT j := 1 TO SIZEOF(sto) BY 1; s0 := s0 + bag_to_set(USEDIN(sto[j], 'LAYERED_INTERCONNECT_MODULE_DESIGN_XIM.STRATUM_ARMX.DEFINITION')); END_REPEAT;
imsar := imsar + bag_to_set(USEDIN(input2[i], 'LAYERED_INTERCONNECT_MODULE_DESIGN_XIM.INTERCONNECT_MODULE_STRATUM_ASSEMBLY_RELATIONSHIP.ASSEMBLY'));
REPEAT j := 1 TO SIZEOF(imsar) BY 1; s1 := s1 + imsar[j]\Interconnect_module_stratum_assembly_relationship.component; END_REPEAT;
s2 := s0 * s1; -- The intersection OF the Stratum that REFERENCE the sto AND the stratum that are part OF the pcb. END_REPEAT;
RETURN(s2); END_FUNCTION; -- limdwpcd_get_stolrs
|