¿Cómo determinar grupos de patrones de defectos/clasificación de obleas de semiconductores?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />HOLA,
Recientemente instalé JMP 12.
Una de las razones principales por las que lo hice fue para mejorar nuestras capacidades de minería de datos posiblemente usando las "Mejoras de agrupación" introducidas en JMP 12.
Mi necesidad básica es dividir los patrones de obleas en grupos para realizar un análisis de elementos comunes con la intención de encontrar las fuentes de variación.
Como se indica en las notas de la versión de JMP 12:
"En las industrias de semiconductores y otras, es importante determinar grupos de patrones de defectos de obleas. Anteriormente, esto significaba crear una variable para hacer coordenadas XY, luego dividir en esta dimensión, agrupar y fusionar los grupos. Ahora, JMP logra esto en un solo paso".
Hay una ilustración que muestra un ejemplo de lo que me gustaría hacer:

Tengo la necesidad de realizar este tipo de análisis con bastante frecuencia. Un ejemplo de esta semana se ve a continuación:

¿Necesito determinar cuántos patrones similares existen y cuántas obleas pertenecen a cada patrón?
¿Alguien ha hecho un análisis de este tipo?
¿Hay un buen tutorial / guía disponible en algún lugar?
Estoy seguro de que esto es de gran interés para los fabricantes de dispositivos de semiconductores y MEM.
Este caso podría ser un buen candidato para alguna próxima JMP Discovery Summit
Todos los consejos y aportes son apreciados.
- Felipe
Re: ¿Cómo determinar grupos de patrones de defectos/clasificación de obleas de semiconductores?¿Cuál es la forma más fácil de completar una tabla con las ubicaciones "buenas" de los troqueles?
Supongo que hay una manera mucho más fácil que esta...
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Wafer Stacked.jmp" );
dt << Select Where( :Defects == 0 ) << Delete Rows;
xmin = -21;
ymin = -21;
xmax = 21;
ymax = 21;
dx= xmax-xmin;
dy= ymax-ymin;
nItems= (dx +1)*(dy + 1)-1;
tmp = New Table();
tmp<< Add Rows( nItems );
tmp: column1 << Data Type( Character ) << set name("Lot");
tmp << new column("Wafer");
tmp << new column("x", Set Each Value(xmin + Floor((row()-1)/dx)));
tmp << new column("y", Set Each Value(ymin +Mod((row()-1),dy)));
label= new column("label",Character, Set Each Value(Char(:x)||" "||Char(:y)));
tmp << new column("missing");
myEntries = tmp:label << get values();
entriesAsCols = tmp << Split(
Split By( :x, :y ),
Split( :missing ),
Group( :lot, :wafer ),
OutPut Table("split")
);
myMatrix = entriesAsCols << Join(
With( dt ),
Merge Same Name Columns,
Match Flag(0),
By Matching Columns( :Lot = :Lot, :Wafer=:Wafer ),
Drop multiples( 0, 1 ),
Include Nonmatches( 0, 1 ),
OutputTable("Matrix")
);
// Stack data table
// → Data Table( "Untitled 26" )
cols = Transform each ({col},As List( myEntries),Column(myMatrix,Char(col)));
myMatrixStacked = myMatrix << Stack(
columns(cols),
Source Label Column( "label" ),
Stacked Data Column( "Data" ),
"Non-stacked columns"n( Keep( :Lot, :Wafer ) ),
Output Table("stacked")
);
myMatrixStacked << new Column ("Defects", Set Each Value(.));
colX = myMatrixStacked << new column ("X_Die",Set Each Value(Num(Word(1,:label," "))));
colY = myMatrixStacked << new column ("Y_Die",Set Each Value(Num(Word(2,:label," "))));
floodedTable = dt << Join(
With( myMatrixStacked ),
Match flag(0),
Merge Same Name Columns,
By Matching Columns(
:Lot = :Lot, :Wafer = :Wafer, :X_Die = :X_Die, : Y_Die = :Y_Die
),
Include Nonmatches( 1, 1 ),
OutputTable("flooded")
);
floodedTable << Recode Column(
dt:Defects,
{Map Value( _rcOrig, {., 0}, Unmatched( _rcNow ) )},
Target Column( :Defects )
);
CLose(dt,myMatrix,entriesAsCols,myMatrixStacked, noSave);Re: ¿Cómo determinar grupos de patrones de defectos/clasificación de obleas de semiconductores?Hola @jerry_cooper ,
Debido a la configuración de medición "detener en caso de falla", pierdo valores. Eso significa que me faltan valores.
Utilizo la "imputación del valor perdido" para superar mi problema. Gracias por tu respuesta!!
Otra pregunta: El mapa de calor que veo. ¿Cómo se calcula o normaliza?
min/max de columna/variable = rango?
¿Y luego se asigna el color de cierto valor dentro de ese rango?
Re: ¿Cómo determinar grupos de patrones de defectos/clasificación de obleas de semiconductores?Hola @Bisoño ,
Es difícil estar seguro sin ver sus datos, sin embargo, creo que el error que está recibiendo puede ser el resultado de intentar apilar mapas de obleas incompletos o intentar apilar obleas con diferentes diseños. Si sus datos solo contienen la matriz defectuosa (y sus ubicaciones), deberá completar su tabla con las ubicaciones de matriz "buenas" para cada oblea e indicar que no están defectuosas, es decir, ingrese un 0 en la columna Defectos. Esto puede sonar desalentador, pero se puede hacer fácilmente con una unión después de haber creado una tabla con todas las ubicaciones posibles de dados para su mapa de obleas.Este enfoque asume que cada oblea tiene el mismo diseño.
Tratar de comparar obleas con diferentes diseños con esta plataforma requeriría una manipulación de datos y creatividad significativas.
Publicar sus datos, si puede, sería útil para determinar un curso más definitivo para usted.
Re: ¿Cómo determinar grupos de patrones de defectos/clasificación de obleas de semiconductores?Hola Mike,
Me gustaría probar el método Wafer Stacked. Sin embargo, me encuentro con el problema de que "no hay suficientes datos que no falten".
No entiendo eso en absoluto. Comparé mis datos con datos de muestra "wafer stacked.jmp".
Nada es diferente en principio.
¿Hay otros problemas conocidos?
@martindemel
Re: ¿Cómo determinar grupos de patrones de defectos/clasificación de obleas de semiconductores?Gracias Michael por tu completa respuesta.
Con ganas de hacer algo de exploración espacial.
Aprecio el tiempo y el esfuerzo que ha puesto en este tema.
Atentamente,
Felipe
Re: ¿Cómo determinar grupos de patrones de defectos/clasificación de obleas de semiconductores?Felipe,
¡Hola!¡Me alegro de que lo hayas resuelto!Sobre estas dos nuevas preguntas, los detalles sobre los diferentes métodos de ajuste se describen en detalle en los libros que vienen con su instalación de JMP.El que quieres es el libro Métodos multivariados.Se encuentra en Ayuda > Libros > Métodos multivariados.Los detalles sobre los métodos de ajuste se encuentran en la sección Detalles estadísticos para la agrupación jerárquica, que se encuentra a partir de la página 75.
Sobre su segunda pregunta con respecto a los componentes espaciales. Los números son la cantidad de componentes espaciales potenciales que encontró el análisis (ya se realiza un trabajo preliminar en este punto).
- Atributos son las combinaciones específicas de las variables proporcionadas en el campo de atributos del cuadro de diálogo de configuración.En este caso, el individuo moriría según lo definido por los pares de coordenadas (X, Y).
- ángulo, pastel busca formas de cuña o formas hemisféricas (es decir, la mitad de una oblea se decora con nódulos de Cu debido a una conexión defectuosa con los electrodos de recubrimiento o algo así).
- Radio, Círculo busca cosas como raspaduras de anillos en CMP, o tal vez patrones basados en CVD con una configuración de deposición de cabezal de ducha.
- raya, ángulo luce características lineales que tienen el mismo ángulo (es decir, rayas de una configuración de secado Marangoni defectuosa).
- Racha, Posición busca rayas con una posición espacial similar.
Puede ver cómo se ve cada una de las características en la tabla de datos proporcionada cuando aparece este cuadro de diálogo "Espacial".Mostrará la transformación de Hough para cada una de las variables en el cuadro de diálogo junto con otra información sobre cada función.Puede decidir cuál incluir marcando y desmarcando las casillas de verificación junto a cada tipo de función en el cuadro de diálogo, es decir, si no le preocupan los rasguños del anillo en este análisis, desmarque el tipo de variable que tiene esas características según la transformación de Hough. información - probablemente Radio, Círculo.
La ponderación en el Diálogo espacial es exactamente lo que parece: pondera la importancia de cada tipo de variable en el análisis de conglomerados.Si es necesario considerar algo, pero es menos importante que un tipo de función en particular, puede hacer que sea menos importante que otros tipos de funciones.
En su última pregunta sobre la configuración, basaría la configuración en lo que ve en las transformaciones de Hough, el cuadro de diálogo (recuentos de cada tipo de función) y lo que sabe sobre la línea.Si sabe que todavía tiene material en la línea afectado por un problema de rayas, puede ser prudente reducir el peso de los bistecs.Probablemente desee monitorear la recurrencia, pero no quiere estar persiguiendo su cola sobre algo que ya sabe. Si no te importan las rayas, apágalas por completo.Mi recomendación básica sobre este tipo de cosas es usar los valores predeterminados hasta que tenga datos, numéricos o circunstanciales, para hacer lo contrario.
Mejor,
METRO
Re: ¿Cómo determinar grupos de patrones de defectos/clasificación de obleas de semiconductores?Hola Michael,
Gracias por su respuesta. Estaba usando solo una columna de Recuento de defectos en ese momento.
Después de reiniciar JMP, ya no veo el mensaje de alarma intermitente.
He podido ejecutar el análisis siguiendo sus instrucciones. Vea un ejemplo a continuación:

Debido a que la documentación es "un poco clara" sobre esta función, me preguntaba si podría ayudarme a explicar cuándo usar Ward, ... Promedio, .. ¿Opciones completas?

Además, ¿puede explicar la importancia del número y el peso en los componentes espaciales?

Al ver los tipos de mapas de obleas que tengo saliendo de la línea (ver arriba), ¿tiene alguna recomendación para la configuración de estos componentes?
- Felipe
Re: ¿Cómo determinar grupos de patrones de defectos/clasificación de obleas de semiconductores?Felipe,
Ese es un problema completamente diferente.¿Puede decirnos algo más sobre su conjunto de datos?¿Quizás publicar una versión anónima de los datos?Lo que probablemente esté sucediendo es que está tratando de dividir los datos en demasiados subgrupos.Esto me ha sucedido en los casos en los que tengo un conjunto de datos muy amplio (muchas columnas), pero poco profundo (pocas filas).Si está haciendo datos de defectos de semiconductores (como el mapa que no es JMP que proporcionó), entonces apuesto a que el error que está viendo se trata más de tratar de agruparse en demasiados grupos causales potenciales.¿Puede proporcionar algunos detalles?
Mejor,
METRO
Re: ¿Cómo determinar grupos de patrones de defectos/clasificación de obleas de semiconductores?Gracias Carl por tu aporte.
Atentamente,
Felipe
Re: ¿Cómo determinar grupos de patrones de defectos/clasificación de obleas de semiconductores?Gracias Kevin,
Un gran e informativo artículo.
Exactamente el tipo de trabajo que me gustaría hacer.
Desafortunadamente las técnicas no son compartidas.
Atentamente,
Felipe
Re: ¿Cómo determinar grupos de patrones de defectos/clasificación de obleas de semiconductores?Hola Michael,
Muchas gracias por tu aporte.
He intentado hacer el análisis tal y como me indicaste e incluso lo he conseguido en unas cuantas ocasiones.
Sin embargo, a menudo recibo el siguiente mensaje de alarma que lleva el análisis a un punto abrupto y .

¿Alguna idea de qué puede causar esto?
¿Hay alguna limitación en el tipo de datos?
Sin embargo, parece muy prometedor y continuaré evaluando / investigando.
¿Hay más documentación sobre esta técnica?
Atentamente,
Felipe
Re: ¿Cómo determinar grupos de patrones de defectos/clasificación de obleas de semiconductores?Sí... Esta es una característica increíble en 12, pero es un poco ligera en la documentación.Los conceptos básicos de cómo usarlo (con los mapas de obleas de los grupos) son los siguientes (tenga en cuenta que necesita una columna de conteo, es decir, defectos en un dado, y coordenadas xy para la estructura de interés, es decir, la ubicación del dado, para hacer esto). trabajar.):
- En JMP12, vaya a Analizar > Métodos multivariantes > Agrupación.
- Ponga la columna de datos que contiene su número de defectos en Y
- Seleccione el menú desplegable en la esquina inferior izquierda del cuadro de diálogo que dice "Datos como de costumbre".Elija "Los datos están apilados" en este menú desplegable.
- Marque "Agregar medidas espaciales" debajo de la lista desplegable (aparecerá después de seleccionar "Los datos están apilados").
- Agregue las coordenadas x e y de la estructura de interés al área de ID de atributo del cuadro de diálogo.
- Agregue identificaciones de oblea al área de ID de objeto (es decir, ID de lote, ID de oblea, ID de ranura, etc. o combinaciones de estos).
- Haga clic en Aceptar.
- En el siguiente diálogo puede ajustar las ponderaciones de los diferentes componentes espaciales en el análisis.(Me iría con los valores predeterminados por ahora)
- Haga clic en Aceptar.
- El informe ahora mostrará el dandrograma donde puede ajustar la cantidad de grupos que desea considerar. Puede ajustar esto usando el pequeño diamante en el eje x del dendrograma.
- Para ver los grupos como mapas de obleas, seleccione "Resumen de grupos" debajo de la flecha roja en la parte superior del informe.El informe también generará una tabla de datos con los grupos como imágenes en una columna de expresión.
¡Espero que ayude!
mejor,
METRO
Re: ¿Cómo determinar grupos de patrones de defectos/clasificación de obleas de semiconductores?Hubo una presentación en 2014 sobre un tema similar.Podrías revisar esto y ver si ayuda.No tiene la respuesta completa, pero puede ver si lo lleva por el camino correcto.Fue diseñado para observar patrones espaciales de ordenación:
Clasificación de patrones espaciales de obleas de semiconductores con JSL
-Carlo
Re: ¿Cómo determinar grupos de patrones de defectos/clasificación de obleas de semiconductores?¡Hola, Felipe!
Estás en lo correcto; este tema ha sido, es y será de gran interés para los fabricantes de dispositivos semiconductores.Por ejemplo, SEMATECH patrocinó todo un Simposio de Métodos Estadísticos sobre estadísticas espaciales allá por 1999.No conozco grandes tutoriales o guías específicamente sobre estadísticas espaciales en semiconductores... Supongo que eso se debe, en parte, a la ventaja competitiva que un sistema teóricamente justificado y que funciona bien otorgaría al propietario.La propiedad intelectual es muy valorada en esa industria.
Quizás te interese esta presentación de JMP Discovery 2014: https://community.jmp.com/servlet/JiveServlet/download/6695-5-69366/Semiconductor%20Wafer%20Spatial%20Pattern%20Classification%20With%20JSL%20%E2%80%93%20JMP%20Discovery%20Summit% 202014.pdf
Se dice al principio de cada episodio de Star Trek: El espacio es realmente es ¡la frontera final!¡Buena suerte!