The following example script gets the "Process Parameter" Yield per "Wafer ID in lot ID" using the sample Semiconductor Capability data table.
Names Default To Here (1);
clear log ();
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp"); // My actual data is similar
col_names = dt << Get Column Group("Processes");
ps = dt << Process Screening (Process Variables( Eval( col_names )),
Spec Limits Dialog( "No (skip columns with no spec limits)" ),
Control Chart Type ("Indiv and MR"),
Grouping (:Wafer ID in lot ID );
);
cdt_ps = Report(ps)[Outline Box( "Process Screening" )][Table Box( 1 )] << Make Combined Data Table;
Wait(1 );
ps<< SendToReport( Dispatch( {}, "Process Screening", OutlineBox, {Close( 1 )} ) );
Wait (1);
ps << close window;
cdt_ps << New Column( "PassingDie", Numeric, "Continuous", Format( "Best", 12 ), Formula(:Count - :Out of Spec Count));
cdt_ps << New Column( "ParaYield [%]", Numeric, "Continuous", Format( "Best", 12 ), Formula(100*(:PassingDie / :Count)));
cdt_ps:Column << Set Name( "Process Parameter" );
Now lets call a Process Parameter "PP", the Process Parameter Group "PPG" and a Wafer ID in lot ID "wfrIDinLotID"
Next I want to extract the PPG yield per wfrIDinLotID where the PPG's are defined as:
- All PNP's in one group
- All NPN's in another group
- All INM's are in another group and so on.
i.e. all PPs generated by the line below but without the numbers at the end form the PPG names.
cdt_ps << Summary(Group( :Process Parameter ), Freq( "None" ), Weight( "None" ));
I do not yet know how to do get the PPG names in a new column in JSL. So, need some help here.
Some PPGs may have just one member which is fine.
The fail count of a given PPG is, I think, is the sum of fail counts of each of its members, later being available from the above script.
Therefore, for a particular wfrIDinLotID, the "Out of Spec Count" for a given PPG, is expected to have a single numerical value. This will go to a new column, lets call it OOSC_PPG.
The PPG yield for a given wfrIDinLotID would then be 100*(number of SITEs with OOSC_PPG = 0)/ Total SITEs tested.
Total sites tested per wfrIDinLotID is 5 in the example data table.
Finally, I would like to generate a report with 3 columns: wfrIDinLotID, PPG, PPG yield.
Please could I have some direction on how to proceed with JSL?
When it's too good to be true, it's neither