Mi proyecto abarca la aplicación de recubrimientos en solución sobre una oblea semiconductora y la optimización de los parámetros del proceso. El objetivo es mejorar la precisión para obtener un espesor uniforme y minimizar la desviación estándar del mismo, logrando así una medición más homogénea en toda la superficie de la oblea. Las herramientas utilizadas en JMP incluyen diseño de experimentos (DOE), análisis de mínimos cuadrados y un perfilador de parámetros con simulador de ruido/desviación estándar para encontrar la configuración óptima.
Soy Nicholas, ingeniero en Medtronic, y utilizo JMP con frecuencia. En esta presentación, me centraré en la codificación por centrifugación y la tecnología relacionada, y en cómo utilizamos JMP para crear un diseño de experimentos (DOE). Posteriormente, elaboraré un modelo de ajuste para comprender el uso del perfilómetro y cómo optimizar y controlar ciertos espesores en la capa de recubrimiento de la oblea.
Como introducción, y como ya mencioné, en esta presentación utilizaremos JMP para analizar la codificación de semiconductores. Como pueden ver en el diagrama superior izquierdo, esta tecnología funciona aplicando una solución centrada sobre la oblea, la cual se encuentra sobre una plataforma giratoria (proceso conocido como recubrimiento por centrifugación). A continuación, se configuran diferentes perfiles de funcionamiento, donde la oblea opera a velocidades específicas durante un tiempo determinado.
Normalmente, el proceso comienza con una etapa inicial a baja velocidad, durante la cual la solución se extiende por toda la superficie. Posteriormente, aumentamos la velocidad gradualmente durante un tiempo prolongado, y según la velocidad establecida, conseguimos diferentes espesores en la capa de recubrimiento.
El objetivo de este experimento, y lo que queremos definir dentro de nuestro DOE, es utilizar el DOE para determinar diferentes espesores, comprender cómo las ventanas de proceso para las diferentes velocidades de giro y los volúmenes dispensados pueden afectar nuestra capa codificada, tanto en la uniformidad en toda la superficie de la oblea como en el espesor de salida.
Como pueden ver a la derecha, estos son los diferentes factores que vamos a utilizar. Realizaremos un diseño de experimentos (DOE) de seis factores. Definiremos los valores mínimo y máximo, y los explicaré en detalle durante la demostración y su aplicación práctica en el DOE. Básicamente, lo que buscamos es construir un modelo utilizando estos parámetros, obtener un buen coeficiente de determinación (R²), que nos indicará la eficacia del modelo para predecir los valores atípicos, y luego utilizarlo para ajustar y optimizar ciertas salidas, como el espesor, intentando minimizar la variabilidad en la superficie o la uniformidad.
Esto se explicará con más detalle cuando comencemos la demostración. Como pueden ver aquí a la izquierda, se trata básicamente de una vista general del grosor del recubrimiento. Buscamos una superficie lo más uniforme posible mediante un gráfico de contorno. Podemos observar posibles puntos altos y bajos. A continuación, pasamos a un modelo de ajuste, donde se grafican todos los datos del diseño de experimentos (DOE). Creo que hay cierta acumulación de datos, lo que explica los rangos altos. También tuvimos algunos valores atípicos en una de las obleas que fabricamos. Abordaré este tema en las siguientes diapositivas.
Pero, básicamente, a partir de esas ejecuciones y análisis, JMP crea un perfilador, al que se le puede ajustar la precisión para, por ejemplo, alcanzar un espesor de 10 micras o 10 000 nanómetros, como se muestra aquí. También se ajustan los factores para minimizar la desviación estándar en la superficie de la oblea. Enseguida profundizaré un poco más en esto.
Aquí tienen un resumen del diseño de experimentos (DOE). Al juntar todos estos valores, los valores mínimos y máximos de nuestros seis factores, obtendremos una tabla con todas las ejecuciones. Esta es la ejecución que realizamos. De hecho, probablemente ahora mismo abra la demo con JMP. Un momento. Si tuviera que explicar cómo hacer un DOE, lo que solemos hacer es... Un momento. Clásico... No, perdón. DOE personalizado. Está aquí arriba.
Ese factor abrirá una ventana emergente donde podrá introducir sus entradas y salidas. Para esta configuración, teníamos un objetivo de grosor. Lo que añadí fue una respuesta para nuestras salidas. Quería que coincidiera con un grosor determinado. Ese es el nombre de nuestra respuesta: grosor, objetivo de coincidencia. Nuestro rango inferior será de 8000 y el superior de 12 000. Estas son las nanómetros de profundidad de la capa de recubrimiento que tenemos. Puedo añadir una M para las unidades.
También queremos analizar la uniformidad. Observaré la desviación estándar en las mediciones de espesor a lo largo de la oblea, y a esto lo llamaremos uniformidad. Queremos minimizarla lo máximo posible. Una desviación estándar alta implica mucha variabilidad. No tenemos una unidad específica para esto.
Ahora tenemos nuestros factores. En nuestro caso, teníamos seis factores continuos: volumen de dispensación, velocidad de giro de dispensación (giramos la oblea al dispensar), velocidad de giro (giramos la oblea al dispensar la solución centrada en la oblea), velocidad de giro uno, velocidad de giro dos (o tiempo de giro uno), velocidad de giro dos (y tiempo de giro dos). Este paso consta de tres etapas: dispensación, giro (girando la oblea), giro uno (donde hablamos de cómo distribuimos la solución) y giro dos (donde nos centramos en... Oh, no, perdón. Disculpen.
La velocidad de dispensación se refiere a la dispersión de la solución sobre la oblea. En la primera pasada, donde aumentamos la velocidad para alcanzar un espesor determinado, la más importante para lograrlo, nos centramos en el proceso. En la segunda pasada, que corresponde al último segundo, aumentamos la velocidad rápidamente para eliminar cualquier acumulación en los bordes. Es simplemente un movimiento rápido de la oblea para eliminar cualquier exceso de solución en los bordes.
Para este montaje, intentaré explicarlo más rápido. Mezclamos un volumen de 8,5 a 10,5 mililitros. La velocidad de la agitación varió de 100 a 400 RPM para distribuir la solución uniformemente. Luego, ajustamos la velocidad de la agitación de 500 a 700 RPM para lograr la viscosidad deseada, diluyendo la solución durante 40 a 60 segundos.
Finalmente, nuestra última prueba fue la de velocidad de disparo ultrarrápida. Realmente no sabemos, al menos al comenzar esta compilación, a qué velocidad operar. Probamos un rango bastante amplio, de 1200 a 2400 RPM, pero solo durante dos o seis segundos. Estos márgenes de proceso son bastante amplios. Esperamos resultados muy drásticos en los extremos. Básicamente, así es como configuramos nuestro diseño de experimentos (DOE), nuestras variables X e Y. Voy a continuar.
Voy a introducir rápidamente las unidades. Tendremos revoluciones por segundo y tiempo, que es... perdón. Revoluciones por minuto como unidad de velocidad y segundos como unidad de tiempo. El volumen se mide en mililitros. De nuevo, la velocidad se mide en RPM. Normalmente, añado una interacción secundaria para darle mayor robustez al modelo. Esto también nos permitirá comprender cómo interactúan las variables entre sí. Se pueden añadir interacciones de tercer y cuarto factor, pero sería demasiado complejo. No lo necesitamos para esta versión.
Para nuestra compilación, terminamos usando 24 obleas. Lo bueno de JMP es que te indica el mínimo requerido y el valor predeterminado. En la industria de semiconductores, trabajamos con casetes que transportan cada oblea, y nuestros casetes tienen capacidad para 24 obleas a la vez. Estamos considerando un valor entre el mínimo predeterminado y 24 obleas. Esto coincide exactamente con la configuración que usaríamos para cargar nuestro equipo. Puedo configurarlo. Procesaremos 24 obleas a través de todo el DOE y luego se creará el diseño.
JMP realizará el cálculo rápidamente y generará una tabla con todos los factores y columnas para los resultados. Aquí se muestra el orden de ejecución (1-24) y cada uno de los factores configurados. Primero, ejecutaremos el proceso para cada uno de estos factores de control en una oblea y, posteriormente, repetiremos el proceso para las 24 obleas. También se puede consultar el análisis de potencia para evaluar la robustez de la configuración. Está en el rango de 60 W, por lo que podría ser un poco más potente, pero cumple con los requisitos de este análisis inicial de la ventana de proceso.
Voy a crear la tabla. El orden de ejecución se aleatorizó, lo que genera esta tabla. Tenemos todos los factores, como se mostró en la tabla anterior, y luego nos da las opciones de grosor y desviación estándar. Añadí un tercer factor por error, sin darme cuenta. Podemos ignorarlo por ahora. El grosor y la desviación estándar son valores de salida.
Si utilizáramos los datos que ya hemos recopilado, estos serían nuestros resultados. Tenemos el grosor medio de las obleas y la desviación estándar de su variación. Estos son solo los datos promedio del conjunto de datos. En realidad, recopilamos alrededor de 1400 datos por oblea. Es una cantidad considerable. Aquí les muestro una tabla muy grande con todos los datos.
La configuración que tengo es la siguiente: aquí tenemos nuestros seis factores de control, luego el grosor real de la oblea (el dato de la oblea) representado en los ejes X e Y, después la salida media y la desviación estándar en dichas obleas. A partir de ahí, suelo analizarlo como un gráfico PGA: práctico, gráfico y analítico.
Primero, analizaremos los conjuntos de datos de forma práctica. Les mostraré un gráfico de contorno del perfil de nuestra superficie, como se mostró en la diapositiva anterior. Cada uno de estos puntos de datos representa una medición de coordenadas XY que realizamos para medir el espesor. Recopilamos una gran cantidad de datos a lo largo de toda la oblea, pero sabemos que alrededor de algunos bordes hay áreas no críticas. No hay componentes críticos que debamos eliminar de esta oblea. Podemos descartar esos puntos de datos.
Ya revisé los datos y excluí y oculté algunos puntos de datos no críticos. Una forma sencilla de hacerlo es, al recibir los datos, hacer clic en el encabezado del gráfico para obtener una tabla resumen de cada columna. Es importante revisar que se tengan todos los ID de oblea. Aquí se pueden detectar valores atípicos. Esto puede ayudar a corregir errores prácticos si se observan valores atípicos o defectos conocidos.
Desde ahí, pasaríamos a la parte gráfica. Yo iría a Gráfico y luego a Generador de gráficos. Para ello, observaríamos los perfiles de superficie en toda la oblea. Tenemos nuestras coordenadas XY y luego analizaría el grosor. Asignaría el grosor como color a cada punto de datos y luego podría cambiarlo a un contorno. Actualmente, esto muestra todas las obleas que tenemos. Introduciré el ID de la oblea en el campo correspondiente y esto me mostrará todas las obleas procesadas, de la 1 a la 24. Puedo verlas todas categorizadas aquí.
Como se puede observar en este diseño experimental, el grosor varía considerablemente. Pasamos de 2000 nanómetros a 13 000 nanómetros, dependiendo de la configuración de los factores de control del objetivo. Sin embargo, nuestro principal objetivo aquí es determinar dónde se observa una mayor falta de uniformidad. En la zona central, vemos que el grosor de esta oblea es mucho mayor, mientras que en los bordes parece ser mucho menor. Esto probablemente indica una falta de uniformidad.
Otra forma de comprobarlo es entrar en la herramienta, creo que está en Analizar. Voy a crear un gráfico individual. Tengo que recordar dónde lo puse. Aquí está. Generador de gráficos de control. Con esto, podemos usar el grosor como eje Y y los ID de oblea. Ah, perdón, no los ID de oblea. Bueno, sí, hagámoslo. Luego voy a reducirlo a... Probemos con 10 000 o 11 000. Cero. Vale, voy a tener que subirlo un poco. Digamos que a unos 15 000. Porque creo que nuestra oblea más grande tenía un grosor de alrededor de 13.
Aquí pueden ver cómo se distribuyen los datos entre las obleas en cada ejecución. Algunas obleas presentan una uniformidad muy baja, mientras que otras son un poco mejores. Para ahorrar tiempo, voy a mostrarles una oblea que ya teníamos distribuida entre todas las obleas. La preparé hace un tiempo, pero una vez que empiece a cargar, la mostraré. Aquí está. También tenemos nuestro gráfico de datos individual. Se dividió entre todas las obleas, y pueden ver la barra X, la media y los límites de control superior e inferior para cada una.
Si comparáramos esto con... Déjenme intentar ajustarlo para que se vea bien en la pantalla. Tenemos esto, y ahora voy a mostrarles también el gráfico de control. ¡Uy, me equivoqué! Si observamos algunas de estas obleas, como esta de aquí, parece que tiene una uniformidad muy deficiente. En este gráfico puedo resaltar estos puntos de datos. Al hacerlo, puedo ver... Pensé que se mostraría aquí.
Pero normalmente, al seleccionarlos, se muestran los datos que contienen. Quizás, al estar la imagen alejada, no se aprecia. Aquí tengo la lista. Se trata de la oblea 09-D3. Como pueden ver, la oblea 09-D3 tiene un grosor muy elevado en el centro y menor en los bordes. Otra oblea con datos anómalos fue la 11-D3. Aquí encontramos un par de valores atípicos muy altos. No estamos seguros del motivo. No formaban parte de los datos excluidos.
Pero de esos, creo que fue 11-D3. Si tuviera que investigar... Disculpen, el ordenador está fallando un poco. Ampliemos esto un poco. Parece que, al observar 11-D3, encontramos algunos puntos de datos con valores altos que causaban problemas en la superficie de la oblea. Por lo demás, el rango medio era bastante similar. Podemos investigar por qué tenemos estos puntos de datos anómalos. Podemos encontrar la causa raíz.
Esa es una de las ventajas de la representación gráfica de JMP. Permite realizar un análisis de la causa raíz, por ejemplo: ¿qué está causando esto? ¿Había material filtrante o algún residuo en la superficie al realizar las mediciones? ¿O hay algún otro factor que interfiera con esos datos?
Después de obtener un buen análisis gráfico, podemos proceder a ajustar un modelo para comprender la concordancia entre los datos. Para analizar el modelo, tomamos los datos. Tenemos el grosor como variable de salida. Lo introducimos en el eje Y, junto con la desviación estándar. De esta manera, determinaremos si es posible crear una función que controle los parámetros y genere resultados específicos. Esto es, esencialmente, lo que hacemos con este modelo de ajuste.
Luego, con eso, podemos abrir un perfilador, que nos permite ajustar diferentes factores de control y ver cuál sería el resultado esperado. El grosor y la desviación estándar son las salidas. Estos son nuestros seis factores de control. Los agregaré. De hecho, voy a... Bien, sí, así está bien. Lo ejecutaremos. Normalmente lo ejecuto con el método de cuadrados de arrendamiento estándar. Este método proporciona un modelo de ajuste óptimo para todos los controles, con el fin de lograr las salidas deseadas. Lo ejecutaremos.
Esto fue lo que surgió entonces. Como pueden ver, todos nuestros datos son significativos e influyen en los resultados. Esto era de esperar, ya que le asignamos un rango de proceso bastante amplio. En esencia, no podemos eliminar ningún factor para simplificar la ecuación; tendremos que mantenerlos todos incluidos.
Si revisamos el resumen del ajuste, podemos ver que nuestro r² es 0.909. Es un r² sólido, y tenemos un error cuadrático medio de 502. También podríamos agregar las interacciones, ya que creamos el diseño de experimentos (DOE) con ellas. De hecho, voy a empezar de nuevo y hacerlo también. Ajustaremos el modelo, el grosor, la desviación estándar y luego los seis factores de control. Los agregaremos. ¡Ay, caramba! Lo hice de nuevo. Los eliminaré. Si los tuviera seleccionados, podría usar macros y calcular el factorial del grado. Tenía un segundo grado aquí, y así es como obtenemos nuestras segundas interacciones.
Ahora, si lo ejecuto, añadiremos el grosor y la desviación estándar a nuestros resultados. Lo dejaré en ejecución. Bien, una lista mucho más larga. Aquí también están todas las interacciones. De nuevo, todo es significativo, así que no puedo simplificar la ecuación. Pero si consultamos el resumen del ajuste, ahora tenemos un 0,97 o 0,965. Tenemos un estimador mucho más preciso para predecir estos puntos de datos.
Puedo pulsar este pequeño botón rojo y añadir el perfilador. Voy a perfilar aquí. Luego lo mostraré abajo. Podemos cerrar algunas de estas opciones para simplificarlo. Aquí tienen el resumen. Creo que debería haber explicado esto primero. Tenemos el espesor de respuesta para... o nuestra respuesta para el espesor, donde tenemos un coeficiente de determinación (r²) de 0,967. Nuestra capacidad de predicción del espesor es bastante buena. También tenemos un r² para la desviación estándar, que es de 0,965. Una correlación muy fuerte para predecirla.
Creo que lo pusimos aquí. Ah, hay un lugar para esto. Bueno, da igual. Supongo que ahora nos centraremos en el perfilador. Veamos si puedo ajustar mejor esta ventana. En el perfilador de predicción, como pueden ver, tenemos los factores de control en el eje X y el grosor y la desviación estándar, que son nuestras salidas, en el eje Y. Con esto, quiero poder configurar este perfilador para predecir las diferentes características deseables.
Lo que debes hacer es optimizar y definir la deseabilidad. Encontramos las funciones de deseabilidad, lo que añadirá una columna de deseabilidad. Cuando encuentres un valor, significa que es el más deseable. Existe una correlación muy fuerte entre que cualquier valor que hayas configurado para tus X y estos objetivos. Pero antes de eso, debes configurar tus criterios de deseabilidad.
Para el grosor, quiero que coincida con el objetivo. Para este caso, toma el punto medio como referencia. Digamos que 9000. Redondeemos a 10, fijemos 10 000 como objetivo, 12 000 como máximo y 20 000 como mínimo. Queremos estar dentro de este rango. Con eso podemos lograr un resultado aceptable. En cuanto a la desviación estándar, simplemente queremos minimizarla.
Dado que solo buscamos minimizar, optando por el extremo inferior, mantendré esos números iguales. Ahora, con la configuración actual de deseabilidad y estas salidas, obtendrás alrededor de 8.3 en el grosor. Como puedes ver, no alcanza el nivel de deseabilidad deseado. La desviación estándar es un poco alta. Ahora que has configurado la deseabilidad, puedes pedirle a JMP que maximice.
Lo que hará es tomar los datos de entrada que proporcionaste y ajustarlos para obtener los resultados más óptimos. Para alcanzar casi 10 000 nanómetros de espesor y minimizar la desviación estándar, estos son los factores de control que debemos configurar. Algunos de estos valores estarán ligeramente desviados, así que puedo ajustarlos a 12 000. Luego, este otro lo cambiaré a 550. Son valores numéricos que se introducen en nuestro equipo.
Para ir un poco más allá, me gusta añadir un poco de ruido a la predictibilidad. Se puede agregar un simulador y un poco de ruido aleatorio. La aleatoriedad de este ruido proviene de la raíz cuadrada que se muestra aquí. La raíz cuadrada representa el error cuadrático medio (303) para el grosor y 21, aproximadamente 22, para la desviación estándar. Esto es lo que se utiliza para crear el ruido en el sistema.
Para nuestros controles, el volumen se basa en una situación real de fabricación. Nunca tendremos un volumen constante perfectamente fijo que se aplique siempre. Hay ciertos factores de ruido que lo ajustarán. Añadiré un poco de ruido aleatorio a ese factor de entrada. Por lo demás, las RPM y los tiempos son bastante consistentes y fijos en esos puntos de datos, así que puedo mantenerlos.
Al simular aquí, estás creando una variabilidad de capacidad y comprendiendo mejor cómo ese ruido y variabilidad afectarán tu ecuación. Lo interesante es que puedes experimentar y ajustar estos valores. Digamos que quiero cambiarlo a ocho; observa cómo afecta a los resultados y a la conveniencia de alcanzarlos. Luego, puedes... Volvamos a cambiarlo a 10.5. Verás cómo la velocidad de respuesta rápida influye mucho en el resultado. Si lo ajustas, verás cómo modifica el grosor, y ahora no estamos dentro del rango deseado.
Si quisieras ajustar el grosor para alcanzar uno diferente, simplemente podrías restablecer los valores predeterminados. Digamos que 9000 nanómetros es un valor más óptimo. Podemos ajustarlo y mantenerlo igual. Luego, puedes ejecutar el optimizador nuevamente, maximizarlo, y este ajustará la configuración. Así, alcanzaremos un grosor aproximado de 9000 nanómetros.
Sí, creo que eso es todo lo que quería abarcar en esta presentación: la ejecución de un diseño de experimentos (DOE) para comprender nuestros rangos y ventanas de proceso, y cómo influyen en los resultados. A partir de ahí, podemos usar la deseabilidad para establecer un punto de datos nominal. Luego, sí, este modelo de ajuste nos permite crear nuestra ecuación. A medida que continuamos fabricando obleas, podemos agregar esos puntos de datos a esta tabla y actualizar el modelo de ajuste, obteniendo así una correlación cada vez más fuerte para nuestro perfilador de predicción. Con esto concluye mi presentación.