Scott Rubel rublo escocés0 , PhD, ingeniero principal sénior, NXP Semiconductors
Todd Jacobs , PhD, ingeniero principal, NXP Semiconductors
James Nelson txnelson , Ingeniero de Software y Six Sigma Black Belt, Contratista Independiente
Introducción
Los diseños de chips modernos tienen múltiples componentes IP con diferentes sensibilidades de proceso, voltaje y temperatura.Todos estos componentes deben funcionar en una amplia gama de condiciones operativas, pero diferentes componentes se enfrentarán a mayores desafíos en diferentes rincones del proceso: algunos a alta temperatura, otros a bajo voltaje, etc.Su rendimiento se puede predecir antes de la fabricación y luego caracterizarse cuando haya silicio real disponible para probar; Cuantos más componentes de propiedad intelectual, más trabajo de modelado/caracterización se requiere.
Los clientes tienen sus propios requisitos de rendimiento además de esto: uno puede requerir una velocidad de funcionamiento muy alta sin preocuparse por la energía, mientras que otro puede tener requisitos de energía extremadamente estrictos, posiblemente apagando por completo algunos componentes del chip.Estos requisitos no se cumplen ejecutando procesos o versiones de productos separados; en cambio, cada lote de producción es una combinación de diferentes grados de rendimiento.Optimizar esta combinación para satisfacer los diferentes requisitos de los clientes ( soy ) a lo largo de la ventana del proceso de fabricación tiene un enorme impacto en el margen bruto: demasiado o muy poco de un contenedor determinado da como resultado un producto que no se puede vender, 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 contenedores en diferentes condiciones: pueden manejar la l gran cantidad de parámetros estadísticos (normalmente 40 – 60, más una matriz de covarianza) y límites de bin (~20-100) involucrados.La extracción y documentación coherentes de los parámetros son fundamentales para gestionarlos, y aquí es donde entran en juego los scripts JMP: proporciona herramientas estadísticas además de capacidad de registro en diario para garantizar simulaciones "correctas a la primera".Además, su f El tiempo de ejecución rápido (1-5 minutos/ejecución) y la documentación consistente permiten múltiples comparaciones de casos de negocios en tiempo real.
Flujo de simulación
El siguiente diagrama muestra el flujo del proceso para una serie típica de ejecuciones de simulación.Comenzamos con las características de rendimiento reales o previstas y de ellas extraemos los parámetros estadísticos subyacentes que describen el producto; Luego podemos escalar estos parámetros (especialmente la varianza) para evaluar diferentes escenarios.En este punto, el motor Monte Carlo genera una "nube" simulada de distribuciones de velocidad-potencia.Superpuestos a esto están los límites del contenedor (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 scipt repite esto automáticamente en diferentes condiciones de fabricación para determinar la ventana de proceso en la que la mezcla del contenedor es aceptable (sin troquel no vendible).En este punto es posible que deseemos considerar diferentes escenarios, en cuyo caso podemos volver a ejecutar la simulación con diferentes escalas y/o límites, hasta que finalmente alcancemos la combinación óptima de proceso y límites para una combinación de demanda determinada.

Distribuciones y agrupamiento de velocidad-potencia
El siguiente gráfico muestra una velocidad típica (simulada) vs. gráfico de potencia para un único 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).El propio log(SIdd) se describe mediante una media y una desviación estándar.Debido a que comúnmente evaluamos los cambios de 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 en cada voltaje y temperatura.En el siguiente gráfico, mostramos un límite de contenedor de muestra: aquellos con una potencia estática inferior a 0,32 logA y superiores a 1040 MHz (dentro del cuadro verde) cumplen los requisitos de este contenedor.

Podemos ampliar el número de troqueles que pasan ajustando el voltaje de prueba nominal (dentro del rango de especificaciones del cliente).A voltajes más altos, las piezas funcionan más rápido, por lo que ahora pueden pasar el requisito de frecuencia más lentamente.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 ese presupuesto, el componente estático permitido a un voltaje de referencia fijo debe ser menor.El cuadro verde claro en la imagen a continuación muestra el troquel adicional que cumple con los requisitos del contenedor en alto voltaje.Lo contrario ocurre con voltajes más bajos; el cuadro verde oscuro muestra dados adicionales capturados en este escenario.

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

Por supuesto, muchos dados pueden pasar múltiples especificaciones; el siguiente gráfico muestra estas regiones superpuestas, con aquellas en el cuadrante verde más oscuro que pasan 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 voltaje, además de AND lógicos en dominios de temperatura e IP.Estos troqueles se pueden utilizar para flexionar el suministro según sea necesario de un contenedor a otro. .

Hay dos formas de contar los dados para cada contenedor.El primero es el máximo distribución, contando todos los troqueles posibles que puedan superar los requisitos de velocidad/potencia del contenedor.Esta es una importante restricción de la oferta: si la demanda excede 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 dados en regiones superpuestas cuentan para cada contenedor que pasan, por lo que la suma de distribución entre contenedores puede exceder el 100%.
La segunda forma de contar los muertos es la Estoy mezclado. En esta metodología el usuario especifica el Orden de clasificación en que se consideran dados para cada bin; Una vez que un dado pasa por un contenedor, se retira de mayor consideración.Por lo tanto, la suma de las distribuciones de la mezcla de contenedores es siempre del 100%, porque no se produce un doble conteo.Ésta es la segunda restricción importante de la oferta que consideramos: determina si tendremos suficientes matrices 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 cambiar utilizando un orden de clasificación diferente y, por lo general, evaluamos estas opciones a lo largo de la vida útil de un producto.
La siguiente tabla muestra cómo difieren las distribuciones máxima y de mezcla de contenedores para un conjunto de cinco matrices:

Si bien los principios de asignación y conteo de contenedores son sencillos, la implementación puede ser muy compleja.Aquí es donde las secuencias de comandos son una ayuda poderosa: garantizan que la lógica se ejecute correctamente para cada dado en todo momento, eliminando una importante fuente potencial de error del usuario.
El archivo de configuración de entrada
Deseamos contener todas las innumerables entradas para una simulación en un solo archivo para una documentación fácil y consistente.Además, nos gustaría una interfaz de script que gestione extracciones estadísticas y ejecuciones de simulación reales.Afortunadamente, JMP puede soportar todo esto en un único objeto de datos, que utilizamos para todas nuestras entradas.Un ejemplo se parece a este:

La región superior se utiliza para diversas rutinas de secuencias de comandos.Debido a que los nombres de los parámetros suelen ser largos y complejos, incluimos la opción de cambiarles el nombre a algo menos engorroso usando 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 futuras pueden simplemente usar estos parámetros almacenados.Los usuarios no necesitan almacenar el archivo de datos por separado, lo que permite a cualquiera 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 es una herramienta fundamental para permitir simulaciones "correctas a la primera", porque busca una serie de errores potenciales que pueden producir resultados espurios.En lugar de depender de la revisión de un usuario experto 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 busca errores más sutiles que podrían producir resultados falsos (pero de apariencia realista). ) simulaciones: parámetros perfectamente correlacionados, correlaciones no físicas o combinaciones de bin/patrón/agrupación que garantizan distribuciones cero o 100% en todo momento.
Salida del diario
Utilizamos la capacidad de archivo de diario de JMP para agregar y estandarizar nuestros resultados, garantizando las mejores prácticas para la documentación.Las características clave para la mayoría de los análisis son la distribución simulada de velocidad-potencia (si se desea, se pueden trazar múltiples pares de parámetros) y los gráficos de distribuciones de capacidad máxima y de combinación de contenedores en todo el rango del 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, de modo que tengamos una trazabilidad completa de todos los detalles subyacentes de la simulación.Esto es fundamental cuando nos encontramos en las primeras etapas del ciclo de vida de un producto y consideramos varios escenarios: no documentar cualquiera de las entradas subyacentes puede causar mucha confusión, pero al programar la salida nos aseguramos de que esto nunca suceda.

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

La segunda variación, extremadamente común a explorar, es la de cambiar el orden de clasificación de los contenedores; Esto puede ocurrir durante todo el ciclo de vida de un producto.Los siguientes gráficos 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 negra vertical), domina el contenedor naranja, con pequeñas cantidades de dados de color verde claro y rojo, y prácticamente sin distribución azul o verde oscuro.

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

Si bien la distribución del contenedor naranja permanece sin cambios, una porción significativa del dado (~30%) ahora caerá en el contenedor verde oscuro en lugar del rojo o verde claro como antes.Este resultado se puede comparar con la demanda del cliente para determinar si se debe cambiar el programa de prueba.
Otro escenario común que requiere simulación es la clasificación de matrices antes del montaje.En este caso, los productos pueden integrarse en diferentes paquetes según su rendimiento.Además de comprender la combinación general de contenedores, ahora queremos comprender cuál será la combinación para cada tipo de paquete, lo que introduce una capa adicional de complejidad.También deseamos comprender qué tan bien nuestras pruebas previas al ensamblaje conducen al paquete correcto.Esto es fácil de hacer con el script JMP, porque los datos de pasa/falla para cada prueba y cada contenedor se incluyen para cada troquel.En el siguiente gráfico podemos ver que los troqueles que no pasaron la prueba de velocidad de preensamblaje de la oblea (turquesa) se encuentran entre los más lentos cuando se prueban después del ensamblaje en ACSCAN_PLAT_MIN_FMAX, pero la correlación no es perfecta: los troqueles turquesas se superponen bastante con otros. límites de contenedores (tenga en cuenta que esta simulación utiliza pruebas y contenedores diferentes a los del ejemplo anterior).

Si esta correlación es lo suficientemente buena para usarla en producción depende de si las distribuciones de contenedores por paquete resultantes son aceptables.Los gráficos a continuación muestran la diferencia entre construir todos los dados (a la izquierda) o todos pero el troquel turquesa (a la derecha).Para mayor claridad, no se muestran los gráficos correspondientes a las distribuciones de mezcla de contenedores, pero se considerarían parte de la evaluación.

Modelado de escenarios: límites variables
Una situación común, pero algo más complicada, es cuando deseamos considerar diferentes límites de contenedores; Esto ocurre con mayor frecuencia durante la fase de definición del producto.Puede haber cierta incertidumbre sobre qué potencia ofrecer a un cliente, o el equipo de diseño puede querer comprender las implicaciones de que una parte de IP funcione más lento de lo deseado.Nuestro script de simulación tiene la flexibilidad de variar los límites del contenedor en pasos discretos; Entonces podemos estudiar el impacto de la distribución.Debido a que estos análisis pueden ser muy diferentes, no generamos resultados gráficos especiales, pero los datos de distribución se guardan fácilmente como tablas de datos separadas que podemos estudiar como queramos.El siguiente ejemplo muestra la salida estándar para la distribución máxima "Bin 1 Combo", ya que el límite de potencia varía en 11 pasos: el pico se vuelve más bajo y se desplaza hacia la derecha para límites de potencia más estrictos.(Los contenedores 2 a 5 tienen solo curvas simples porque sus límites no cambian.A la derecha mostramos un gráfico personalizado que traza la distribución del Bin 1 en el proceso objetivo (línea negra vertical), en función del límite del bin (etiquetado por número de paso; podemos convertir esto 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 la mezcla de contenedores, si lo deseamos.

En el gráfico de la derecha podemos ver que tenemos espacio para ajustar el límite de potencia en 3 o 4 pasos antes de que las distribuciones del contenedor 1 comiencen a caer bruscamente; en ese punto la oferta se vuelve muy sensible a cambios menores.Enviaríamos esta información al equipo de marketing mientras consideran qué especificaciones de energía ofrecer al cliente.
Es posible que también queramos evaluar la sensibilidad a la velocidad de una pieza particular de IP.Nuevamente superamos los límites del contenedor y consideramos tres métricas.El primero es el objetivo óptimo del proceso (ubicación de la distribución de picos en el eje X): esto no se puede ajustar infinitamente ni se hace de manera 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 coincide con la demanda) y, por supuesto, necesitamos que pase suficiente cantidad para cumplir con los pedidos de los clientes.Los tres gráficos a continuación cuentan una historia similar: podemos tolerar una pérdida de velocidad de hasta ~40 MHz, pero más allá de eso, el objetivo de proceso óptimo es muy sensible a cualquier variación de velocidad, la ventana del proceso se reduce rápidamente y el suministro del contenedor comienza a disminuir. colapsar.Esta información le da al equipo de diseño un criterio claro para el éxito y una idea sólida de cuánto margen deben incluir en sus simulaciones.

En situaciones particularmente complejas se pueden considerar simultáneamente las variaciones de velocidad y potencia; por ejemplo, si mejorar el margen de velocidad genera un costo de energía.El registro en diario integrado de la herramienta de secuencias de comandos es particularmente importante aquí, ya que documenta todas las entradas cambiantes automáticamente.
Resumen
El uso de un script JMP ha mejorado enormemente nuestras capacidades de modelado del rendimiento de nuestros productos.Podemos gestionar entradas complejas con validación integrada para evitar errores comunes de los usuarios.El script maneja las matemáticas detrás de la simulación de Monte Carlo, liberando a los usuarios para centrarse en resultados de valor agregado en lugar de detalles estadísticos.También garantiza resultados consistentes que abarquen nuestras mejores prácticas, de modo que cada análisis esté completamente documentado sin la necesidad de una revisión de expertos o una larga especificación de documentación.
La herramienta se puede utilizar con datos de silicio o con estimaciones de rendimiento antes de que tengamos los productos disponibles.Aquí es donde radica su mayor valor: podemos impactar los productos en una etapa muy temprana de su ciclo de vida y brindar comentarios significativos a los equipos de Diseño y Marketing antes de que se establezcan las especificaciones finales.Esto permite una mejor participación del cliente y garantiza que cuando se lancen nuestros productos, todos sean funcionales y vendibles.Finalmente, podemos realizar rápidamente análisis de sensibilidad que garanticen que tengamos una ventana de proceso sólida.Los productos que cumplen con estos criterios en el momento del lanzamiento son más rentables, garantizan operaciones de fabricación fluidas y satisfacen mejor las necesidades de los clientes durante toda su vida útil.