cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Try the Materials Informatics Toolkit, which is designed to easily handle SMILES data. This and other helpful add-ins are available in the JMP® Marketplace
Choose Language Hide Translation Bar
Jackie_
Level VI

Offsetting X and Y coordinates of wafer

Hi,

 

I've two jmp table which has X and Y coordinates of the wafer. I would like to know if there's a way to align the coordinates of Wafer 1 with Wafer 2? 

For examples: I want to align the following highlighted X and Y with the X and Y of wafer 2.

Wafer 1 : X, Y = 129, 372 

Wafer 2: X, Y = -17, -15

I am not sure if there a way to recognize patterns in the graph builder and get the hover label information with JSL. Any suggestions would be much appreciated 

 

Wafer 1 =

Jacksmith12_0-1659881657253.png

 

Wafer 2 = 

Jacksmith12_1-1659881682065.png

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
txnelson
Super User

Re: Offsetting X and Y coordinates of wafer

Yes!

This is a simple thing for JMP to do.  In fact, this little problem is a perfect li a great little project as your first JSL project.  The solution is to either add or subtract the difference between the maximum value of X Coord from Wafer 1 data table and Wafer 2 data table.  And then to do the same for the Y coordinates.

The script takes the following steps

Open the data table.  Here is the actual code for that

Names Default To Here( 1 );
dt1 = data table("Wafer 1");
dt2 = data table("Wafer 2");

Next, to determine the offset difference between the 2 wafers, you need to find the Absolute differeence between the maximum value in the wafer 1 X Coord column and the maximum value in the wafer 2 X Coord column.

Now repeat the same for the Y Coord columns.

The next step requires the conditional determination of whether to add or subtract the offset value. A new column needs to be created that  if the X Coord column's maximum value for wafer 1 is greater than the X Coord column's maximum value for wafer 2, the offset needs to be subtracted from wafer 1's X Coord values.  If that is not true, then the offset is added to the X Coord values.

This step needs to be repeated for the Y Coord.

 

The reading of the Scripting Guide will give you the information on the data structures a programming features available in JSL.

Jim

View solution in original post

15 REPLIES 15
txnelson
Super User

Re: Offsetting X and Y coordinates of wafer

It appears that if you add 89 to the X Coord and 58 to the Y Coord in the Wafer 2 data table, the wafermaps will align

Jim
Jackie_
Level VI

Re: Offsetting X and Y coordinates of wafer

I had to manually compare both maps to find the location of both dies in the map and the offset value. Is there a way to implement using jsl?

txnelson
Super User

Re: Offsetting X and Y coordinates of wafer

Yes!

This is a simple thing for JMP to do.  In fact, this little problem is a perfect li a great little project as your first JSL project.  The solution is to either add or subtract the difference between the maximum value of X Coord from Wafer 1 data table and Wafer 2 data table.  And then to do the same for the Y coordinates.

The script takes the following steps

Open the data table.  Here is the actual code for that

Names Default To Here( 1 );
dt1 = data table("Wafer 1");
dt2 = data table("Wafer 2");

Next, to determine the offset difference between the 2 wafers, you need to find the Absolute differeence between the maximum value in the wafer 1 X Coord column and the maximum value in the wafer 2 X Coord column.

Now repeat the same for the Y Coord columns.

The next step requires the conditional determination of whether to add or subtract the offset value. A new column needs to be created that  if the X Coord column's maximum value for wafer 1 is greater than the X Coord column's maximum value for wafer 2, the offset needs to be subtracted from wafer 1's X Coord values.  If that is not true, then the offset is added to the X Coord values.

This step needs to be repeated for the Y Coord.

 

The reading of the Scripting Guide will give you the information on the data structures a programming features available in JSL.

Jim
Jackie_
Level VI

Re: Offsetting X and Y coordinates of wafer

Names Default To Here( 1 );
Clear Globals();
Clear Log();

dt1 = data table("Wafer 1");
dt2 = data table("Wafer 2");

dt1 << New Column( "New_X", Numeric, "Continuous", Format( "Best", 12 ) );
dt1 << New Column( "New_Y", Numeric, "Continuous", Format( "Best", 12 ) );
Max_X1= Col Maximum(dt1:X Coord);
Max_Y1= Col Maximum(dt1:Y Coord);

Max_X2= Col Maximum(dt2:X Coord);
Max_Y2= Col Maximum(dt2:Y Coord);


Offset_x = abs(	Max_X2 - Max_X1);
Offset_y = abs(Max_Y2 - Max_Y1);
For( i = 1, i <= N rows(dt1), i++, 

if( Max_X1 > Max_X2, 
		
		Column(dt1, 4)[i] =  Offset_x  - Column(dt1, 1)[i] ;,
		Column(dt1, 4)[i] =   Offset_x + Column(dt1, 1)[i];
		
)
		
		
	);
For( i = 1, i <= N rows(dt1), i++, 

if( Max_Y1 > Max_Y2, 
		
		Column(dt1, 5)[i] =  Offset_y  - Column(dt1, 2)[i] ;,
		Column(dt1, 5)[i] =   Offset_y + Column(dt1, 2)[i];
		
)
		
		
	);

"A new column needs to be created that  if the X Coord column's maximum value for wafer 1 is greater than the X Coord column's maximum value for wafer 2, the offset needs to be subtracted from wafer 1's X Coord values.  If that is not true, then the offset is added to the X Coord values.

This step needs to be repeated for the Y Coord."

Jim, would you mind sharing an example code for the above sentence? I was able to Find the Max values for X and Y and the abs difference

txnelson
Super User

Re: Offsetting X and Y coordinates of wafer

Good work getting as far as you did.  I strongly suggest you take the time to read the Scripting Guide.

Below is a modification to your code that populates the new columns

Names Default To Here( 1 );
Clear Globals();
Clear Log();

dt1 = Data Table( "Wafer 1" );
dt2 = Data Table( "Wafer 2" );

dt1 << New Column( "New_X", Numeric, "Ordinal", Format( "Best", 12 ) );
dt1 << New Column( "New_Y", Numeric, "Ordinal", Format( "Best", 12 ) );
Max_X1 = Col Maximum( dt1:X Coord );
Max_Y1 = Col Maximum( dt1:Y Coord );

Max_X2 = Col Maximum( dt2:X Coord );
Max_Y2 = Col Maximum( dt2:Y Coord );


Offset_x = Abs( Max_X2 - Max_X1 );
Offset_y = Abs( Max_Y2 - Max_Y1 );

For( i = 1, i <= N Rows( dt1 ), i++,
	If( Max_X1 > Max_X2,
		//dt1:New_X[i] = Offset_x - dt1:XCoord[i],
		//dt1:New_X[i] = Offset_x + dt1:XCoord[i]
dt1:New_X[i] = dt1:XCoord[i] - Offset_x,
dt1:New_X[i] = dt1:XCoord[i] + Offset_x ) ); For( i = 1, i <= N Rows( dt1 ), i++, If( Max_Y1 > Max_Y2, //dt1:New_Y[i] = Offset_y - dt1:YCoord[i], //dt1:New_Y[i] = Offset_y + dt1:YCoord[i]
dt1:New_Y[i] = dt1:YCoord[i] - Offset_y,
dt1:New_Y[i] = dt1:YCoord[i] + Offset_y ) );
Jim
Jackie_
Level VI

Re: Offsetting X and Y coordinates of wafer

@txnelson ,

Thanks, Jim. The code works but the results isn't what I expected. You see the X and Y axis don't align with the wafer 2 Map

Jacksmith12_0-1659991878463.png

 

txnelson
Super User

Re: Offsetting X and Y coordinates of wafer

I did not notice this before....the issue is you need to subtract or add the Offset from the coordinate, not the coordinate from the offset.

txnelson_0-1659992853090.png

Names Default To Here( 1 );
Clear Globals();
Clear Log();

dt1 = Data Table( "Wafer 1" );
dt2 = Data Table( "Wafer 2" );

dt1 << New Column( "New_X", Numeric, "Ordinal", Format( "Best", 12 ) );
dt1 << New Column( "New_Y", Numeric, "Ordinal", Format( "Best", 12 ) );
Max_X1 = Col Maximum( dt1:X Coord );
Max_Y1 = Col Maximum( dt1:Y Coord );

Max_X2 = Col Maximum( dt2:X Coord );
Max_Y2 = Col Maximum( dt2:Y Coord );


Offset_x = Abs( Max_X2 - Max_X1 );
Offset_y = Abs( Max_Y2 - Max_Y1 );

For( i = 1, i <= N Rows( dt1 ), i++,
	If( Max_X1 > Max_X2,
		dt1:New_X[i] = dt1:XCoord[i] - Offset_x,
		dt1:New_X[i] = dt1:XCoord[i] + Offset_x
	)
);

For( i = 1, i <= N Rows( dt1 ), i++,
	If( Max_Y1 > Max_Y2,
		dt1:New_Y[i] = dt1:YCoord[i] - Offset_y,
		dt1:New_Y[i] = dt1:YCoord[i] + Offset_y
	)
);

Here is the original version of the code that I undependably came up with.  It runs faster, but gives the same results.  Take a look at the code, and check out the different approach.

Names Default To Here( 1 );
dt1 = data table("Wafer 1");
dt2 = data table("Wafer 2");

xOffset = abs(col max(dt1:X Coord) - col max(dt2:X Coord));
yOffset = abs(col max(dt1:Y Coord) - col max(dt2:Y Coord));
If( Col Max( dt1:X Coord ) > Col Max( dt2:X Coord ),
	dt1 << New Column( "New X Coord", set each value( :X Coord - xOffset ) ),
	dt1 << New Column( "New X Coord", set each value( :X Coord + xOffset ) )
);
If( Col Max( dt1:Y Coord ) > Col Max( dt2:Y Coord ),
	dt1 << New Column( "New Y Coord", set each value( :Y Coord - yOffset ) ),
	dt1 << New Column( "New Y Coord", set each value( :Y Coord + yOffset ) )
);



 

Jim
Jackie_
Level VI

Re: Offsetting X and Y coordinates of wafer

It doesn't work either Jim. See the results below

Jacksmith12_0-1660049777038.png

 

txnelson
Super User

Re: Offsetting X and Y coordinates of wafer

Your axes have been reversed on one of the charts

Jim