Scott Rubelscottrubel0, PhD, Ingeniero Principal Sénior, NXP Semiconductors
Todd Jacobs , PhD, ingeniero principal, NXP Semiconductors
James Nelson txnelson , ingeniero de software y cinturón negro Six Sigma, contratista independiente
Introducción
Los diseños de chips modernos incorporan múltiples componentes IP con diferentes sensibilidades a procesos, voltajes y temperaturas. Estos componentes deben funcionar en un amplio rango de condiciones operativas, pero cada componente se verá sometido a mayores exigencias en diferentes etapas del proceso: algunos a alta temperatura, otros a bajo voltaje, etc. Su rendimiento puede predecirse antes de la fabricación y luego caracterizarse cuando se disponga de silicio real para realizar pruebas; cuantos más componentes IP haya, mayor será el trabajo de modelado/caracterización necesario.
Los clientes tienen sus propios requisitos de rendimiento, que se suman a estos: uno puede requerir una velocidad de operación muy alta sin preocuparse demasiado por el consumo de energía, mientras que otro puede tener requisitos de energía extremadamente estrictos, posiblemente desactivando por completo algunos componentes del chip. Estos requisitos no se cumplen ejecutando procesos o versiones de producto independientes; cada lote de producción es una mezcla de diferentes niveles de rendimiento.Optimizar esta combinación para satisfacer los diferentes requisitos de los clientes (contenedores) a lo largo de toda la ventana del proceso de fabricación tiene un enorme impacto en el margen bruto: demasiado o muy poco de un determinado contenedor da como resultado un producto invendible, lo que es esencialmente una pérdida de rendimiento.
Las simulaciones de Monte Carlo son óptimas para simular estas distribuciones de velocidad-potencia y mezclas de bins en diferentes condiciones: pueden manejar la lgran número de parámetros estadísticos (normalmente 40 a 60, más una matriz de covarianza) y límites de bin (~20-100) involucrados.La extracción y documentación consistente de parámetros es fundamental para su gestión, y ahí es donde entran en juego los scripts JMP:Proporciona herramientas estadísticas y capacidad de registro para garantizar simulaciones correctas a la primera. Además, su...El tiempo de ejecución rápido (1-5 minutos/ejecución) y la documentación consistente permiten comparaciones de múltiples casos de negocios en tiempo real.
Flujo de simulación
El diagrama a continuación muestra el flujo del proceso para una serie típica de simulaciones. Comenzamos con las características de rendimiento, ya sean predichas o reales, y de ellas extraemos los parámetros estadísticos subyacentes que describen el producto; posteriormente, podemos escalar estos parámetros (especialmente la varianza) para evaluar diferentes escenarios. En este punto, el motor de Monte Carlo genera una "nube" simulada de distribuciones de velocidad-potencia. Sobre esta se superponen los límites de los contenedores (requisitos del cliente). La integración numérica del volumen de la nube dentro de los límites determina la distribución estadística de los contenedores para esta nube en particular. El script repite esto automáticamente en diferentes condiciones de fabricación para determinar la ventana de proceso en la que la combinación de contenedores es aceptable (sin matrices no vendibles). En este punto, podemos considerar diferentes escenarios, en cuyo caso podemos volver a ejecutar la simulación con diferentes escalas o límites, hasta alcanzar la combinación óptima de proceso y límites para una combinación de demanda dada.

Distribuciones de velocidad-potencia y binning
El gráfico a continuación muestra un gráfico típico (simulado) de velocidad vs. potencia para un solo dominio IP. La frecuencia es casi siempre una función lineal de log(corriente de fuga estática = SIdd), por lo que se describe mediante una pendiente, una intersección y un RMSE (ruido). Log(SIdd) se describe mediante una media y una desviación estándar. Dado que solemos evaluar los cambios en la desviación estándar, incluimos un parámetro de escala como una de nuestras entradas, lo que significa que la nube tiene tres parámetros para la potencia, más tres para cada prueba de frecuencia a cada voltaje y temperatura. En el gráfico a continuación, mostramos un ejemplo de límite de intervalo: los valores por debajo de 0,32 logA de potencia estática y por encima de 1040 MHz (dentro del recuadro verde) cumplen los requisitos de este intervalo.

Podemos ampliar el número de matrices que cumplen los requisitos ajustando la tensión de prueba nominal (dentro del rango especificado por el cliente). A tensiones más altas, las piezas funcionan más rápido, por lo que una matriz más lenta puede cumplir con el requisito de frecuencia. Sin embargo, la pieza también consume más energía estática y dinámica, y existe un presupuesto fijo para ello. Para mantenerse dentro de este presupuesto, el componente estático permitido a una tensión de referencia fija debe ser menor. El recuadro verde claro de la imagen a continuación muestra la matriz adicional que cumple con los requisitos de bin a alta tensión. Lo contrario ocurre con tensiones más bajas; el recuadro verde oscuro muestra la matriz adicional capturada en este escenario.

Los chips que no pasan por un contenedor, incluso con diferentes voltajes, pueden pasar por otro. El gráfico a continuación muestra dos contenedores adicionales que capturan estos chips atípicos: uno de baja velocidad y bajo consumo (azul) y otro de alta velocidad y alto consumo (rojo).

Por supuesto, muchos chips pueden superar múltiples especificaciones; el siguiente gráfico muestra estas regiones superpuestas, donde el chip en el cuadrante verde más oscuro supera todos los voltajes para los límites de especificación verde, así como los límites de especificación rojo y azul. Las regiones de agrupamiento se describen mediante una combinación de OR lógicos en el voltaje, más AND lógicos en los dominios de temperatura e IP. Estos chips pueden utilizarse para adaptar la alimentación según sea necesario de un agrupamiento a otro..

Hay dos maneras de contabilizar los troqueles para cada contenedor. La primera es la distribución máxima , que cuenta todos los troqueles posibles que pueden cumplir con los requisitos de velocidad/potencia del contenedor. Esta es una importante restricción de la oferta: si la demanda supera la distribución máxima, la oferta siempre será escasa, lo que resultará en material no vendible (pérdida de rendimiento). Para esta métrica, los troqueles en regiones superpuestas cuentan por cada contenedor que pasan, por lo que la suma de la distribución entre contenedores puede superar el 100 %.
La segunda forma de contabilizar los troqueles es mediante la mezcla de contenedores. En esta metodología, el usuario especifica el orden de clasificación en el que se consideran los troqueles para cada contenedor; una vez que un troquel pasa por un contenedor, se elimina de la consideración posterior. Por lo tanto, la suma de las distribuciones de la mezcla de contenedores siempre es del 100 %, ya que no se produce un doble conteo. Esta es la segunda restricción principal de suministro que consideramos: determina si tendremos suficientes troqueles para satisfacer la demanda en la producción real. A diferencia de la distribución máxima, la distribución de la mezcla de contenedores se puede modificar mediante un orden de clasificación diferente, y estas opciones se evalúan habitualmente a lo largo de la vida útil del producto.
La siguiente tabla muestra cómo difieren las distribuciones de mezcla máxima y de bin para un conjunto de cinco matrices:

Si bien los principios de asignación y conteo de bins son sencillos, su implementación puede ser muy compleja. Aquí es donde los scripts son una herramienta poderosa: garantizan que la lógica se ejecute correctamente para cada dado en cada ocasión, eliminando una importante fuente potencial de error del usuario.
El archivo de configuración de entrada
Queremos incluir todas las innumerables entradas de una simulación en un solo archivo para una documentación sencilla y coherente. Además, nos gustaría una interfaz de script que gestione las extracciones estadísticas y las ejecuciones de simulación reales. Afortunadamente, JMP admite todo esto en un único objeto de datos, que utilizamos para todas nuestras entradas. Un ejemplo sería el siguiente:

La región superior se utiliza para diversas rutinas de scripting. Dado que los nombres de los parámetros suelen ser largos y complejos, incluimos la opción de renombrarlos de forma más sencilla mediante los comandos de análisis de texto de JMP. Durante la ejecución inicial, basada en un archivo de datos, el script extrae y almacena todos los parámetros estadísticos necesarios en el archivo de configuración; las ejecuciones posteriores pueden simplemente usar estos parámetros almacenados. Los usuarios no necesitan almacenar el archivo de datos por separado, lo que permite ejecutar una simulación idéntica utilizando el archivo de configuración del producto. Esto evita inconsistencias cuando los usuarios basan sus análisis en diferentes conjuntos de datos de entrada.
El script también incluye una opción para validar la tabla de configuración. Esta herramienta es crucial para realizar simulaciones correctas a la primera, ya que detecta una serie de posibles errores que podrían producir resultados falsos. En lugar de depender de la revisión de usuarios expertos cada vez, el script garantiza que no falte ninguna entrada clave (límites, pruebas, parámetros de agrupación de temperatura o voltaje, etc.) y también detecta errores más sutiles que podrían producir simulaciones falsas (pero de aspecto realista): parámetros perfectamente correlacionados, correlaciones no físicas o combinaciones de bin/patrón/agrupación que garantizan distribuciones de cero o 100% en todo momento.
Salida del diario
Utilizamos la capacidad de archivo de registro de JMP para agregar y estandarizar nuestros resultados, garantizando así las mejores prácticas de documentación. Las características clave para la mayoría de los análisis son la distribución simulada de velocidad-potencia (se pueden graficar múltiples pares de parámetros si se desea) y los gráficos de las distribuciones de capacidad máxima y de mezcla de bins en todo el proceso de fabricación. Además de los gráficos, el archivo también incluye los parámetros estadísticos y todas las demás entradas del archivo de configuración, lo que nos permite una trazabilidad completa de todos los detalles subyacentes de la simulación. Esto es crucial en las primeras etapas del ciclo de vida de un producto y al considerar diversos escenarios: la falta de documentación de alguna de las entradas subyacentes puede causar mucha confusión, pero al crear scripts para la salida, garantizamos que esto nunca ocurra.

Modelado de escenarios
Con la documentación automatizada, podemos centrarnos en evaluar rápidamente diferentes escenarios. Dado que el tiempo de simulación es muy corto (de 1 a 5 minutos), los más comunes pueden evaluarse en tiempo real durante las reuniones, lo que facilita enormemente las conversaciones con los equipos de Marketing y Diseño. A continuación, mostramos algunos ejemplos, comenzando con uno de los más sencillos: el escalado de la varianza del proceso. El primer gráfico muestra el impacto en la distribución máxima de un contenedor cuando mejora el control del proceso de fábrica: la distribución disminuye en algunas regiones, pero en el objetivo óptimo es significativamente mejor. Esta situación es tan común que el escalado de la varianza es un parámetro ajustable en el archivo de configuración.

La segunda variación, extremadamente común, que se debe explorar es el cambio del orden de clasificación de los contenedores; esto puede ocurrir a lo largo del ciclo de vida de un producto. Los gráficos a continuación muestran la distribución de la mezcla de contenedores a lo largo del proceso de fabricación cuando el orden de clasificación es: naranja, rojo, verde claro, verde oscuro, azul. (El gráfico de distribución máxima no se muestra aquí, ya que no se ve afectado por el orden de clasificación). En el objetivo del proceso (línea vertical negra), el contenedor naranja predomina, con pequeñas cantidades de matriz en contenedores verde claro y rojo, y prácticamente ninguna distribución de azul o verde oscuro.

Ahora queremos evaluar el efecto de intercambiar el orden de clasificación de los contenedores rojo y verde oscuro: ¿cuánto menos del primero y cuánto más del segundo podremos enviar? El orden de clasificación es un parámetro que podemos modificar fácilmente en el archivo de configuración, por lo que esta comparación solo toma un par de minutos; el gráfico a continuación muestra el resultado (nótese que el contenedor verde claro está completamente cubierto por el contenedor verde oscuro, que se prueba primero en el nuevo orden).

Si bien la distribución del contenedor naranja permanece sin cambios, una porción significativa del troquel (aproximadamente el 30 %) ahora caerá en el contenedor verde oscuro, en lugar del rojo o el verde claro, como antes. Este resultado puede compararse con la demanda del cliente para determinar si se debe modificar el programa de pruebas.
Otro escenario común que requiere simulación es la clasificación de matrices antes del ensamblaje. En este caso, los productos pueden integrarse en diferentes paquetes según su rendimiento. Además de comprender la combinación general de bins, ahora queremos comprender cuál será la combinación para cada tipo de paquete, lo que añade complejidad. También queremos comprender cómo nuestras pruebas de preensamblaje dirigen la matriz al paquete correcto. Esto es fácil de hacer con el script JMP, ya que se incluyen los datos de aprobación/rechazo de cada prueba y bin para cada matriz. En el gráfico a continuación, podemos ver que las matrices que no superan la prueba de velocidad de preensamblaje de la oblea (turquesa) se encuentran entre las más lentas cuando se prueban después del ensamblaje a ACSCAN_PLAT_MIN_FMAX; sin embargo, la correlación no es perfecta: la matriz turquesa se superpone bastante con los límites de otros bins (tenga en cuenta que esta simulación utiliza pruebas y bins diferentes a los del ejemplo anterior).

La idoneidad de esta correlación para su uso en producción depende de la aceptabilidad de las distribuciones de bins resultantes por paquete. Los gráficos a continuación muestran la diferencia entre fabricar todos los troqueles (a la izquierda) o todos excepto el troquel turquesa (a la derecha). Para mayor claridad, no se muestran los gráficos correspondientes a las distribuciones de bins mix, pero se considerarían como parte de la evaluación.

Modelado de escenarios: límites de variables
Una situación común, aunque algo más compleja, es cuando deseamos considerar diferentes límites de bin; esto ocurre con mayor frecuencia durante la fase de definición del producto. Puede haber incertidumbre sobre la potencia que se debe ofrecer a un cliente, o el equipo de diseño podría querer comprender las implicaciones de que un componente de IP funcione a una velocidad menor de la deseada. Nuestro script de simulación permite variar los límites de bin en pasos discretos; de esta forma, podemos estudiar el impacto en la distribución. Dado que estos análisis pueden ser muy diferentes, no generamos resultados gráficos especiales, pero los datos de distribución se guardan fácilmente en tablas de datos independientes que podemos analizar a nuestro gusto. El siguiente ejemplo muestra la salida estándar para la distribución máxima "Bin 1 Combo" a medida que el límite de potencia se varía en 11 pasos: el pico se reduce y se desplaza hacia la derecha para límites de potencia más estrictos. (Los contenedores 2 a 5 solo tienen curvas simples porque sus límites no cambian. A la derecha mostramos un gráfico personalizado que traza la distribución del contenedor 1 en el proceso objetivo (línea negra vertical), como una función del límite del contenedor (etiquetado por número de paso; podemos convertirlo a valores de potencia reales según sea necesario). Como de costumbre, también podríamos realizar este análisis en la distribución de mezcla de contenedores, si lo deseamos.

En el gráfico de la derecha, podemos ver que tenemos margen para ajustar el límite de potencia de 3 a 4 pasos antes de que las distribuciones del Bin 1 comiencen a disminuir drásticamente; en ese momento, el suministro se vuelve muy sensible a cambios menores. Informaremos al equipo de Marketing sobre esta información mientras evalúan las especificaciones de potencia que se ofrecerán a cada cliente.
También podríamos evaluar la sensibilidad de la velocidad a una pieza específica de IP. Nuevamente, escalonamos los límites del intervalo y consideramos tres métricas. La primera es el objetivo óptimo del proceso (ubicación de la distribución de picos en el eje X): esto no es infinitamente ajustable ni trivial, por lo que no queremos que el objetivo del proceso sea sensible a la pérdida de velocidad. También necesitamos una ventana de proceso razonable (el rango en el que la oferta se ajusta a la demanda) y, por supuesto, necesitamos suficientes matrices que pasen por ese intervalo para satisfacer los pedidos de los clientes. Los tres gráficos a continuación muestran una situación similar: podemos tolerar una pérdida de velocidad de hasta ~40 MHz, pero por encima de ese valor, el objetivo óptimo del proceso es muy sensible a cualquier variación de velocidad, la ventana de proceso se reduce rápidamente y la propia oferta del intervalo comienza a colapsar. Esta información proporciona al equipo de diseño un criterio claro de éxito y una idea clara del margen que deben incluir en sus simulaciones.

En situaciones particularmente complejas, las variaciones de velocidad y potencia pueden considerarse simultáneamente; por ejemplo, si mejorar el margen de velocidad implica un gasto de energía. El registro integrado de la herramienta de scripting es especialmente importante en este caso, ya que documenta automáticamente todos los cambios de entrada.
Resumen
El uso de un script JMP ha mejorado considerablemente nuestras capacidades de modelado del rendimiento del producto. Podemos gestionar entradas complejas con validación integrada para evitar errores comunes de usuario. El script gestiona los cálculos de la simulación de Monte Carlo, permitiendo a los usuarios centrarse en resultados de valor añadido en lugar de en los detalles estadísticos. Además, garantiza resultados consistentes que incorporan nuestras mejores prácticas, de modo que cada análisis queda documentado exhaustivamente sin necesidad de revisión experta ni una extensa documentación.
La herramienta puede utilizarse con datos de silicio o con estimaciones de rendimiento antes de tener los productos en mano. Aquí reside su mayor valor: podemos influir en los productos en las primeras etapas de su ciclo de vida y proporcionar retroalimentación significativa a los equipos de Diseño y Marketing antes de definir las especificaciones finales. Esto facilita una mejor interacción con el cliente y garantiza que, al lanzar nuestros productos, todos los troqueles funcionales sean comercializables. Finalmente, podemos realizar rápidamente análisis de sensibilidad que nos permiten contar con una ventana de proceso robusta. Los productos que cumplen estos criterios en el lanzamiento son más rentables, garantizan una fabricación fluida y satisfacen mejor las necesidades del cliente durante toda su vida útil.