BookmarkSubscribeSubscribe to RSS Feed
M_Anderson

Staff

Joined:

Nov 21, 2014

Semiconductor Toolkit

 THE SEMICONDUCTOR TOOLKIT (VERSION 2)

The Semiconductor Toolkit is an attempt to answer the need from the semiconductor industry for specialized visualizations and reframing of existing JMP capabilities.  On its initial release, the toolkit contained tools for generating patterned and unpatterned wafer maps, annotating existing graphics with wafer geometry, and a semiconductor specific frontend to the Hierarchical Clustering with spatial measures option.  It has now been expanded to include analytical methods for exploring die defect data, making comparisons between wafers, and a collection of tools and utilities contributed by the user community. The toolkit is intended to be a collaborative and living effort by interested parties.  Constructive criticism, bug reports, and capability suggestions are welcome and encouraged. 

wafer map.jpg

SYSTEM REQUIREMENTS
The add-in is for version 12 and newer of JMP and JMP Pro.  The add-in will check which version of JMP it is being added to and show only the methods available on that installation.

 

UPDATES

  • (2016-08-22) Version 1 released.
  • (2016-11-03) Corrected bugs found by @ragnarl.
  • (2016-10-14)  Added a note about the next release to correspond with the launch of the new community site
  • (2016-09-26)  Added screenshots and descriptions for each tool.
  • (2017-11-01)  Version 2 released.  WELL, THAT TOOK LONGER THAN EXPECTED... It represents a complete overhaul of the Add-in.  A number of new tools were added, including tools for handling wafer maps for patterned wafers and methods for comparing wafer maps with dissimilar sampling patterns.  Under the hood, the application was completely rewritten in the JMP Application Builder.  I also standardized many of the methods in the original Add-in to ensure consistent performance across the platforms.  A proper help manual is also included and will be expanded as time allows.
  • (2018-02-15)  Fixed a couple of bugs in the initial release. 
  • (2018-02-23)  Bug Fix. 

 
THE TOOLS

Annotation Tool adds markers for the wafer and exclusion edges to an existing graph or series of graphs in the same window.  If the die geometry is known, markers for the die layout can also be added.

 

Mapping Tool Set > Patterned Wafer Map uses die indices and a response variable to generate a patterned wafer map.  The platform also provides summary statistic capabilities for the wafer map.

 

Mapping Tool Set > Bare Wafer Map uses coordinate information and a response variable to create a bare wafer map.  The tool provides information about the quality of the fit for the smoothing algorithm used.  The tool currently supports Neural Network models - one type in JMP and two types in JMP Pro.  

 

Mapping Tool Set > Use Geometry creates Shape Files for JMP to use in the Graph Builder Platform.  Due to the differences in IT policy, the files are generated on the user's Desktop and it is left to the user to move these files to the correct location in the file system.  These locations can be found on page 308 in the JMP 13 book "Essential Graphing."  This book is included in the JMP install and can be found under Help > Books > Essential Graphing in JMP. 

 

Mapping Tool Set > Use Stepper Map creates Shape Files for JMP to use in the Graph Builder Platform as with the Wafer Map Generator.  This tool uses a table of coordinates to generate the map.  As with the Geometry Tool, see the JMP documentation for how to use the generated files with Graph Builder

 

Mapping Tool Set > Use Die Index uses a table of die indices to generating approximate wafer map shapefiles.  As with the Geometry Tool, see the JMP documentation for how to use the generated files with Graph Builder.


Analysis Tool Set > Cluster Defects is a front end for the Hierarchical Clustering Platform with the spatial measures option used.  This front end recasts the general terms used in the Hierarchical Clustering Platform into terms that are more familiar to the semiconductor industry.

 

Analysis Tool Set > Explore Patterned Data generates a report that supports exploration of binning and test data.  It provides the same summary statistics as the Patterned Wafer Map tool with additional drill-down capabilities.  

 

Analysis Tool Set > Compare Wafer Maps compares two wafer maps with dissimilar sampling patterns, i.e., different products on the same tool or process.

 

Utilities Tool Box > Attach Table Limits is a port of the tool by @txnelson.  Detailed documentation for its use can be found here.  

Comments
ragnarl

Thanks Michael for sharing this very promising add-in!

At this point I have only tried the wafer map generator. It works well for the default die dimensions, but it fails when the X and/or Y dimensions are odd or fractions. For example, try with X Dimension = 25.81, Y Dimension = 15.21.

Also, the X and Y axis have wrong increment settings.

The fixes are simple:

To fix the issue with the odd / fraction die dimensions:

In MakeMainWindow, Change the definition xMax and yMax:

//xMaX = (2 * wRad) / xSize;
//yMax = (2 * wRad) / ySize;
xMax = 2 * Ceiling(wRad / xSize);
yMax = 2 * Ceiling(wRad / ySize);

To fix the problem with the axis increments.:

Use ySize for axisbox(1) and xSize for axisbox(2):

toolWin[Axisbox( 1 )] << Show Major Grid( 1 ) << Inc(ySize);

toolWin[Axisbox( 2 )] << Show Major Grid( 1 )<< Inc(xSize);

Lars-Åke Ragnarsson

imec

ragnarl

Suggestions for improvement in this tool:

  • Add notch to wafer
  • Add notch location (e.g. bottom, right, ...)
M_Anderson

Lars,

Thanks for the feedback!  I can't seem to generate a failure with odd sized dimensions like you describe.  I'd like to get some more information about what you're experiencing.  Can you send me an email at mike.anderson[at]jmp.com, please?

Thanks!

M

M_Anderson

Thanks for these improvement suggestions.  I agree with you and I'll get them into the next revision.

best,

M

vmuriart

fyi, Looks like the images have dissapeared ofter the migration

M_Anderson

Yes, I was in a hurry to get the new version up, so I didn't bother with the images.  I'll get them back up soon.  

 

Best,

 

 

mhamblin

Does anyone know of a consultant / firm who offers custom development work of JMP solutions for fabless semiconductor companies?  We are interested in using it, but would like someone with more experience to help us develop / deploy the solution.  Thanks!

@mhamblin, check JMP.com/partners for a list of firms that can help you. Lots of good choices. 

Leo_Huang

Does this toolkit work on jmp 12.2??

M_Anderson
Yes, it should install on v12. Though I can’t guarantee that all the features will be present or function the same. Some of the tools use capabilities that are present in JMP v13 or later and I only tested it back to v13. If you are running v12, you should consider contacting your site admin (or IT team) about upgrading. JMP 13.2 has already been released so you’re a full version behind.

Best,

M
Navdip87

I tried to add this "add in" on JMP 10 version but it did not work. Is there a way to access this add in on JMP 10 version. I know, you have already mentioned, "JMP 12 or newer versions."

 

Thanks.

M_Anderson
Hi, I’m sorry, but I did limit the supported version to 12 and newer. A number of features and methods I used aren’t available until version 12. Depending on which part of the toolkit you are interested in using, you can find some of the components in the community. My Discovery Talk (https://community.jmp.com/t5/Discovery-Summit-2016/All-Wafer-Maps-Are-Wrong-An-Adventure-in-Semicond... ) has info on how I build the un-patterned wafer maps.

Best,

M
Magic_Smoke
Also not able to run on v12.2, launching add-in opens a file browse prompt for centers.jmp, then nothing happens. Is this a file that can be found elsewhere?
M_Anderson
I’ll correct that as soon as I can. In the mean time providing any open data table will allow the interface to launch.

M
M_Anderson

Try it now - the file open dialog should be corrected.

 

M

Magic_Smoke

Hi M,

I am still prompted to open a file if no table is open. If a data table is selected or already open, nothing else is happening. Any way I can help troubleshoot this? (Is the download link at the top of this thread the best place to get the newest version?)

M_Anderson

@Magic_Smoke, please make sure you have downloaded "Semiconductor Toolkit_V2-1.jmpaddin."  The add-in will still ask for you to have an open data table (that's just how it works now).  PM me if you're still running into issues.  The add-in is provided "as is" but I'll do my best to see what the problem is.

 

M

Elias

Good Morning M_Andreson,

 

I can't download the add-ins, I got Network error. I think we have problem with the link. 

Will you please fix the link?

 

Thank you for this wonderful add-ins

 

M_Anderson
Glad you like it! I believe a comma that I used in the file name was causing the issue. Try it now.

M
Elias

Yes it works. Thank you.

WS

Hi  Anderson,

 

I try it with JMP14, looks like it doesn't work.

Will it be updated for JMP14?

 

Thanks

M_Anderson
Can you be more specific about how it doesn’t work?
ChrisBrooks

Hello,

I would like to generate multiple wafer map shape files for different products.  I generate them with "Use Geometry".  The shape files for different wafer maps seem to conflict because they have the same ShapeIDs and share the same column name of "DieIndex".  For my second set of shape files, I changed the ShapeID by adding 5000 for both the "Name" and "XY" files and I renamed "DieIndex" to "DieIndex2".  With both sets of shape files in the SAS/JMP/13/Maps folder, they both can be used by referencing either "DieIndex" or "DieIndex2", but it seems like the presence of the second set of shape files is still influencing the first set (the x-axis scaling on my plots is different whether or not I have the second set in the Maps folders).  Is there anything else I have to do such that multiple wafer maps can work independently?

Thanks,

Chris

M_Anderson

Hi, @ChrisBrooks!

 

Welcome to the community!  This is a fiddly problem to be sure.  There may be some other solutions out there, but the one that I would recommend is to use the Map Role Column property (JMP Documentation).  This lets you point your data table directly at the right product map.  

 

There are a couple of upsides to using this method:  You don't have to go directory diving for the JMP maps folder (i.e you can put it somewhere more convenient). You can also copy/paste the column property to a new dataset so you only need to set it up once.

 

Best,

 

M

ChrisBrooks

Thanks for the help, it works!  No need to rename any of the ShapeID's or columns if you have multiple shape files.  For those who use JSL, I created a column for the "DieIndex" in my main data table whose map role property uses the shape file generated by the toolkit:

New Column( "DieIndex",
	Character( 10 ),
	Formula(Char( :DieX ) || "," || Char( :DieY )),
	Set Property("Map Role", Map Role( Shape Name Use( "C:\Users\cbrooks\Documents\Data Analysis\JMP\Semiconductor Toolkit\Die-WaferMap-Name.jmp", "DieIndex")))	
);

and where I've already had made the :DieX and :DieY columns based on my particular wafer.  I tried creating a variable: wafermap_shapefile = "C:\Users\cbrooks\Documents\Data Analysis\JMP\Semiconductor Toolkit\Die-WaferMap-Name.jmp"; to pass it as an argument in Shape Name Use, but it didn't work (column property had wafermap_shapefile as the file name, instead of the text string).  M, what syntax am I missing to evaluate the variable as a string in Shape Name Use?  By the way, my colleagues are impressed by the wafer maps but I credit you for doing all the hard work.  Thanks again!

 

Chris 

M_Anderson

@ChrisBrooks,  

 

The problem with column properties is that you have to build them completely (including the file path) before trying to work on the table itself.  This makes using variables tricky.  

 

I generally try to use a combination of a column property message (i.e. col1 << set property(<stuff>))  and either a "substitute into with an expression" workflow or use the Eval(Parse()) workflow.  You could also try substituting into the new column argument directly before evaluating it.

// Define the file path
wafer_shapefile = "C:\Users\cbrooks\Documents\Data Analysis\JMP\Semiconductor Toolkit\Die-WaferMap-Name.jmp";
// define the new column expression. newCol = Expr(New Column( "DieIndex", Character( 10 ), Formula(Char( :DieX ) || "," || Char( :DieY )), Set Property("Map Role", Map Role( Shape Name Use( loc, "DieIndex"))) ););
// back substitute the file path into the expression Substitute Into(newCol, Expr(loc), Eval(wafer_shapefile));

// run the expression.
newCol;

 

Another thought (sorry for the stream of consciousness style here - caffeine hasn't kicked in yet), you could try :

// Define the file path
wafer_shapefile = "C:\Users\cbrooks\Documents\Data Analysis\JMP\Semiconductor Toolkit\Die-WaferMap-Name.jmp";

// run the column code with an evaluate arguement
New Column( "DieIndex",
	Character( 10 ),
	Formula(Char( :DieX ) || "," || Char( :DieY )),
	Set Property("Map Role", Map Role( Shape Name Use( Eval(wafer_shapefile), "DieIndex")))	
);

I guess the take-home message here is that columns need some special structures to make them play nice with dynamic coding and you just have to try them to see which one works the best for a given setting.  

 

Hope that was helpful!

 

Best,

 

M

 

ChrisBrooks

Perfect!  The first option works, second option has "Eval" as the map name data table in the map role column property.

Thanks,

Chris 

iamshan

Hi Anderson,

I just installed JMP14 and tried your toolkit, looks like it doesn't work.

When I click the toolkit, one window named "centers.jmp" occurs, and no other window occurs;

Is it due to new version ?

Thanks a lot !

iamshan

 

error.jpg

The picture

 

M_Anderson

@iamshan,  Hi!  welcome to the community.  You need to have a data table open to run the toolkit.  Just open up a data table and it should behave fine.

 

M

iamshan

Hi  Anderson,

 

Thanks a lot!  It works now ; )

 

 

WS

blueDevil2004

Hi,

I am interested in using this Add-in, but it is not working on my system. I have JMP Pro 12.2.0 (64-bit) running, and has one other Add-in that was developed internally. I see this Semiconductor add-in under "Add-ins" but i click it and it doesn't do anything. If I click on the add-in file in the recent files list, it asks me for the center.jmp (mentioned above). I choose the jmp table i want to use and i get an error:

CaptureJMP.PNG

However, before you bother yourself with helping me fix this, i would like to know if it can manage multiple wafer maps side by side. I have parameters that I want to display with many wafers side by side (in a grid). Ideally, it'd be able to zoom in and out to get as many as 100 wafers simulataneously displayed for a quick glance, and zoom in to a few to get a more detailed breakdown.

 

Thanks,

Jason

M_Anderson

@blueDevil2004, Hi!  If your wafers are from the same product or die layout then you can do using a map shapefile and Graph Builder.  When you start the add-in (with a data table open) you should see the main interface found on page 9 of the documentation. 

 

I'm not 100% sure on if it will function on JMP12.  I developed the latest version on JMP14 and I haven't tested it that far back.  

 

M