Scott Rubel rouble écossais0 , PhD, ingénieur principal senior, NXP Semiconductors
Todd Jacobs , PhD, Ingénieur principal, NXP Semiconductors
James Nelson txnelson , ingénieur logiciel et ceinture noire Six Sigma, entrepreneur indépendant
Introduction
Les conceptions de puces modernes comportent plusieurs composants IP avec différentes sensibilités au processus, à la tension et à la température.Ces composants doivent tous fonctionner dans une large gamme de conditions de fonctionnement, mais différents composants seront plus sollicités à différents moments du processus : certains à haute température, d'autres à basse tension, etc.Leurs performances peuvent être prédites avant la fabrication, puis caractérisées lorsque le silicium réel est disponible pour le test ; plus il y a de composants IP, plus le travail de modélisation/caractérisation est nécessaire.
En plus de cela, les clients ont leurs propres exigences en matière de performances : l'un peut exiger une vitesse de fonctionnement très élevée avec peu de soucis de puissance, tandis qu'un autre peut avoir des exigences de puissance extrêmement strictes, voire désactiver complètement certains composants de la puce.Ces exigences ne sont pas satisfaites en exécutant des processus ou des versions de produit distincts ; au lieu de cela, chaque lot de production est un mélange de différents niveaux de performance.Optimiser ce mix pour répondre aux différentes exigences des clients ( suis ) tout au long du processus de fabrication a un impact énorme sur la marge brute : trop ou pas assez d'un bac donné entraîne un produit invendable, ce qui constitue essentiellement une perte de rendement.
Les simulations Monte Carlo sont optimales pour simuler ces distributions vitesse-puissance et ces mélanges de bacs dans différentes conditions : elles peuvent gérer le l un grand nombre de paramètres statistiques (généralement 40 à 60, plus une matrice de covariance) et de limites de catégories (~ 20 à 100) impliqués.Une extraction et une documentation cohérentes des paramètres sont essentielles à leur gestion. C'est là qu'interviennent les scripts JMP : fournit les outils statistiques ainsi que la capacité de journalisation pour garantir des simulations « correctes du premier coup ».De plus, c'est f Un temps d'exécution rapide (1 à 5 minutes/exécution) et une documentation cohérente permettent de comparer plusieurs analyses de rentabilisation en temps réel.
Flux de simulation
Le diagramme ci-dessous montre le flux de processus pour une série typique d'exécutions de simulation.Nous commençons par les caractéristiques de performance prévues ou réelles, et en extrayons les paramètres statistiques sous-jacents décrivant le produit ; nous pouvons ensuite mettre à l'échelle ces paramètres (en particulier la variance) pour évaluer différents scénarios.À ce stade, le moteur Monte Carlo génère un « nuage » simulé de distributions vitesse-puissance.À cela se superposent les limites des bacs (exigences du client).L'intégration numérique du volume du nuage dans les limites détermine la distribution statistique des groupes pour ce nuage particulier.Le script répète automatiquement cette opération dans différentes conditions de fabrication pour déterminer la fenêtre de processus pendant laquelle le mélange de bacs est acceptable (pas de matrice invendable).À ce stade, nous souhaiterons peut-être envisager différents scénarios, auquel cas nous pouvons réexécuter la simulation avec une échelle et/ou des limites différentes, jusqu'à ce que nous atteignions finalement la combinaison optimale de processus et de limites pour un mélange de demande donné.

Distributions vitesse-puissance et regroupement
Le graphique ci-dessous montre une vitesse typique (simulée) par rapport à. tracé de puissance pour un seul domaine IP.La fréquence est presque toujours une fonction linéaire du log (courant de fuite statique = SIdd), elle est donc décrite par une pente, une interception et un RMSE (bruit).log(SIdd) lui-même est décrit par une moyenne et un écart type.Étant donné que nous évaluons généralement les changements d'écart type, nous incluons un paramètre de mise à l'échelle comme l'une de nos entrées, ce qui signifie que le cloud a trois paramètres pour la puissance, plus trois pour chaque test de fréquence à chaque tension et température.Dans le graphique ci-dessous, nous montrons un exemple de limite de bac : ceux dont la puissance statique est inférieure à 0,32 logA et supérieurs à 1 040 MHz (à l'intérieur de la boîte verte) satisfont aux exigences de ce bac.

Nous pouvons augmenter le nombre de matrices de passage en ajustant la tension de test nominale (dans la plage spécifiée par le client).À des tensions plus élevées, les pièces fonctionnent plus rapidement, donc plus lentement, elles peuvent désormais satisfaire aux exigences de fréquence.Cependant, la pièce consomme également plus d’énergie statique et dynamique, et il existe un budget fixe pour cela.Pour rester dans les limites de ce budget, la composante statique autorisée à une tension de référence fixe doit être inférieure.Le cadre vert clair dans l'image ci-dessous montre la puce supplémentaire qui répond aux exigences du bac à haute tension.L’inverse est vrai pour des tensions inférieures ; la case vert foncé montre les dés supplémentaires capturés dans ce scénario.

Ceux qui ne passent pas un bac, même avec des tensions différentes, peuvent quand même en passer un autre.Le graphique ci-dessous montre deux bacs supplémentaires qui capturent ces valeurs aberrantes : un bac basse vitesse et faible consommation (bleu) et un bac haute vitesse et haute puissance (rouge).

Bien sûr, de nombreux dés peuvent satisfaire à plusieurs spécifications ; le tracé suivant montre ces régions qui se chevauchent, celles du quadrant vert le plus foncé transmettant toutes les tensions pour les limites de spécifications vertes, ainsi que les limites de spécifications rouges et bleues.Les régions de regroupement sont décrites par une combinaison de OU logiques à travers la tension, plus des ET logiques à travers les domaines de température et IP.Ces matrices peuvent être utilisées pour adapter l'approvisionnement selon les besoins d'un bac à l'autre. .

Il existe deux façons de compter les dés pour chaque bac.Le premier est le maximum distribution, en comptant tous les dés possibles qui peuvent répondre aux exigences de vitesse/puissance du bac.Il s'agit d'une contrainte d'approvisionnement importante : si la demande dépasse la distribution maximale, l'offre sera toujours insuffisante, ce qui entraînera des matières non vendables (perte de rendement).Pour cette métrique, les dés dans les régions qui se chevauchent comptent pour chaque groupe qu'ils traversent, de sorte que la somme de répartition entre les groupes peut dépasser 100 %.
La deuxième façon de compter les morts est la Je suis mixte. Dans cette méthodologie, l'utilisateur précise le ordre de tri dans quels dés sont pris en compte pour chaque bac ; Une fois qu'un dé passe devant un bac, il est retiré de tout examen ultérieur.La somme des répartitions des bin mix est donc toujours de 100 %, car aucun double comptage n'a lieu.Il s’agit de la deuxième contrainte d’approvisionnement majeure que nous prenons en compte : elle détermine si nous aurons suffisamment de matrices pour répondre à la demande dans la production réelle.Contrairement à la distribution maximale, la distribution du mélange de bacs peut être modifiée en utilisant un ordre de tri différent, et nous évaluons généralement ces options tout au long de la durée de vie d'un produit.
Le tableau ci-dessous montre en quoi les distributions maximales et de mélange de compartiments diffèrent pour un ensemble de cinq matrices :

Bien que les principes d’attribution et de comptage des bacs soient simples, la mise en œuvre peut être très complexe.C'est là que les scripts constituent une aide puissante : ils garantissent que la logique est exécutée correctement pour chaque dé à chaque fois, éliminant ainsi une source potentielle majeure d'erreur utilisateur.
Le fichier de configuration d'entrée
Nous souhaitons contenir la myriade d’entrées d’une simulation dans un seul fichier pour une documentation simple et cohérente.De plus, nous aimerions une interface de script qui gérerait les extractions statistiques et les simulations réelles.Heureusement, JMP peut prendre en charge tout cela dans un seul objet de données, que nous utilisons pour toutes nos entrées.Un exemple ressemble à ceci :

La région supérieure est utilisée pour diverses routines de script.Étant donné que les noms de paramètres sont souvent longs et complexes, nous incluons la possibilité de les renommer en quelque chose de moins fastidieux à l'aide des commandes d'analyse de texte de JMP.Lors de l'exécution initiale basée sur un fichier de données, le script extrait et stocke tous les paramètres statistiques nécessaires dans le fichier de configuration ; les exécutions futures pourront simplement utiliser ces paramètres stockés.Les utilisateurs n'ont pas besoin de stocker le fichier de données séparément, ce qui permet à quiconque d'exécuter une simulation identique à l'aide du fichier de configuration du produit.Cela évite les incohérences lorsque les utilisateurs fondent leurs analyses sur différents ensembles de données d'entrée.
Le script inclut également une option pour valider la table de configuration.Il s'agit d'un outil essentiel pour permettre des simulations « correctes du premier coup », car il vérifie une multitude d'erreurs potentielles susceptibles de produire des résultats erronés.Plutôt que de s'appuyer à chaque fois sur l'examen d'un utilisateur expert, le script garantit qu'aucune entrée clé ne manque (limites, tests, paramètres de regroupement de température ou de tension, etc.), et vérifie également les erreurs plus subtiles qui pourraient produire des erreurs (mais réalistes). ) simulations : paramètres parfaitement corrélés, corrélations non physiques ou combinaisons de casiers/modèles/regroupements qui garantissent des distributions nulles ou 100 % à tout moment.
Sortie du journal
Nous utilisons la capacité de fichier journal de JMP pour regrouper et standardiser nos sorties, garantissant ainsi les meilleures pratiques en matière de documentation.Les principales caractéristiques de la plupart des analyses sont la distribution vitesse-puissance simulée (plusieurs paires de paramètres peuvent être tracées si vous le souhaitez) et les tracés des distributions de capacité maximale et de mélange de cellules sur toute la plage du processus de fabrication.En plus des graphiques, le fichier comprend également les paramètres statistiques et toutes les autres entrées du fichier de configuration, afin que nous ayons une traçabilité complète de tous les détails sous-jacents de la simulation.Ceci est essentiel lorsque nous sommes au début du cycle de vie d'un produit et que nous envisageons plusieurs scénarios : le fait de ne pas documenter l'une des entrées sous-jacentes peut provoquer une grande confusion, mais en scriptant la sortie, nous garantissons que cela n'arrivera jamais.

Modélisation de scénarios
Grâce à la documentation automatisée, nous pouvons nous concentrer sur l’évaluation rapide de différents scénarios.Le temps de simulation étant très court (1 à 5 minutes), les plus courants peuvent être évalués en temps réel lors de réunions, facilitant grandement les discussions avec les équipes Marketing et Design.Nous montrons quelques exemples ci-dessous, en commençant par l'un des plus simples : la mise à l'échelle de la variance du processus.Le premier graphique montre l'impact sur la distribution maximale d'un seul bac lorsque le contrôle des processus en usine s'améliore : la distribution diminue dans certaines régions, mais à la cible optimale, elle est nettement meilleure.Cette situation est si courante que la mise à l'échelle de la variance est un paramètre réglable dans le fichier de configuration.

La deuxième variante extrêmement courante à explorer est celle de la modification de l'ordre de tri des bacs ; cela peut se produire tout au long du cycle de vie d'un produit.Les graphiques ci-dessous montrent la répartition du mélange de bacs tout au long du processus de fabrication lorsque l'ordre de tri est : orange, rouge, vert clair, vert foncé, bleu.(Le tracé de distribution maximale n'est pas affiché ici, car il n'est pas affecté par l'ordre de tri.)Au niveau de la cible du processus (ligne noire verticale), le bac orange domine, avec de petites quantités de dés vert clair et rouge, et pratiquement aucune distribution bleue ou vert foncé.

Nous souhaitons maintenant évaluer l'effet de l'échange de l'ordre de tri des bacs rouges et vert foncé : combien de moins de premier et plus de second pourrons-nous désormais expédier ?L'ordre de tri est un paramètre que nous pouvons facilement modifier dans le fichier de configuration, cette comparaison ne prend donc que quelques minutes ; le graphique ci-dessous montre le résultat (notez que le bac vert clair est entièrement recouvert par le bac vert foncé, qui est testé en premier dans le nouvel ordre).

Bien que la répartition du bac orange reste inchangée, une partie importante du dé (~ 30 %) tombera désormais dans le bac vert foncé plutôt que rouge ou vert clair comme auparavant.Ce résultat peut être comparé à la demande du client pour déterminer si le programme de test doit être modifié.
Un autre scénario courant nécessitant une simulation est le tri des matrices avant assemblage.Dans ce cas, les produits peuvent être intégrés dans différents packages en fonction de leurs performances.En plus de comprendre la répartition globale des bacs, nous souhaitons maintenant comprendre quelle sera la répartition pour chaque type de colis, introduisant ainsi un niveau de complexité supplémentaire.Nous souhaitons également comprendre dans quelle mesure nos tests de pré-assemblage conduisent au bon package.C'est facile à faire avec le script JMP, car les données de réussite/échec pour chaque test et chaque bac sont incluses pour chaque matrice.Dans le graphique ci-dessous, nous pouvons voir que les puces qui échouent au test de vitesse de pré-assemblage de la tranche (turquoise) sont en effet parmi les plus lentes lorsqu'elles sont testées après l'assemblage sur ACSCAN_PLAT_MIN_FMAX - mais la corrélation n'est pas parfaite : la puce turquoise se chevauche assez fortement avec d'autres. limites des compartiments (notez que cette simulation utilise des tests et des compartiments différents de ceux de l'exemple précédent).

Le fait que cette corrélation soit suffisamment bonne pour être utilisée en production dépend de l'acceptabilité des distributions de compartiments par colis résultantes.Les graphiques ci-dessous montrent la différence entre construire tous les dés (à gauche) ou tous mais le dé turquoise (à droite).Par souci de clarté, les graphiques correspondants pour les répartitions de la composition des compartiments ne sont pas présentés, mais seraient considérés comme faisant partie de l'évaluation.

Modélisation de scénarios : limites de variables
Une situation courante, mais un peu plus complexe, est celle où nous souhaitons considérer différentes limites de bacs ; cela se produit le plus souvent lors de la phase de définition du produit.Il peut y avoir une certaine incertitude quant à la puissance à offrir à un client, ou l'équipe de conception peut vouloir comprendre les implications d'un élément IP fonctionnant plus lentement que souhaité.Notre script de simulation a la flexibilité de faire varier les limites des bacs par étapes discrètes ; nous pouvons alors étudier l’impact de la distribution.Étant donné que ces analyses peuvent être très différentes, nous ne générons pas de sorties graphiques spéciales, mais les données de distribution sont facilement enregistrées sous forme de tableaux de données distincts que nous pouvons étudier comme bon nous semble.L'exemple ci-dessous montre la sortie standard pour la distribution maximale « Bin 1 Combo » car la limite de puissance varie en 11 étapes : le pic devient plus bas et se déplace vers la droite pour des limites de puissance plus strictes.(Les groupes 2 à 5 n'ont que des courbes simples car leurs limites ne changent pas.À droite, nous montrons un graphique personnalisé qui trace la distribution du bac 1 au niveau du processus cible (ligne noire verticale), en fonction de la limite du bac (étiquetée par numéro d'étape ; nous pouvons la convertir en valeurs de puissance réelles si nécessaire).Comme d'habitude, nous pourrions également effectuer cette analyse sur la distribution du mélange de bacs, si vous le souhaitez.

Sur le graphique de droite, nous pouvons voir que nous avons la possibilité de resserrer la limite de puissance de 3 à 4 étapes avant que les distributions du Bin 1 ne commencent à chuter fortement ; à ce stade, l’offre devient très sensible à des changements mineurs.Nous transmettons ces informations à l'équipe marketing lorsqu'elle réfléchit aux spécifications de puissance à offrir à un client.
Nous pouvons également vouloir évaluer la sensibilité à la vitesse d’un élément IP particulier.Nous repoussons à nouveau les limites des bacs et considérons trois mesures.La première est la cible optimale du processus (emplacement de la distribution des pics sur l'axe X) : elle n'est pas réglable à l'infini et n'est pas triviale, nous ne voulons donc pas que la cible du processus soit sensible à la perte de vitesse.Nous avons également besoin d'une fenêtre de processus raisonnable (la plage dans laquelle l'offre correspond à la demande), et bien sûr, nous avons besoin de suffisamment de temps pour répondre aux commandes des clients.Les trois graphiques ci-dessous racontent une histoire similaire : nous pouvons tolérer une perte de vitesse allant jusqu'à environ 40 MHz, mais au-delà de cela, la cible optimale du processus est très sensible à toute variation de vitesse, la fenêtre du processus se rétrécit rapidement et l'alimentation du bac elle-même commence à diminuer. effondrement.Cette contribution donne à l'équipe de conception un critère de réussite clair et une idée précise de la marge qu'elle doit inclure dans ses simulations.

Dans des situations particulièrement complexes, les variations de vitesse et de puissance peuvent être considérées simultanément ; par exemple, si l'amélioration de la marge de vitesse entraîne un coût en énergie.La journalisation intégrée de l'outil de script est ici particulièrement importante, car elle documente automatiquement toutes les entrées modifiées.
Résumé
L'utilisation d'un script JMP a considérablement amélioré nos capacités de modélisation des performances des produits.Nous pouvons gérer des entrées complexes avec une validation intégrée pour éviter les erreurs courantes des utilisateurs.Le script gère les calculs derrière la simulation Monte Carlo elle-même, permettant ainsi aux utilisateurs de se concentrer sur les résultats à valeur ajoutée plutôt que sur les détails statistiques.Cela garantit également un résultat cohérent englobant nos meilleures pratiques, de sorte que chaque analyse soit minutieusement documentée sans avoir besoin d'un examen par un expert ou d'une longue spécification de documentation.
L'outil peut être utilisé soit avec des données sur le silicium, soit avec des estimations de performances avant que nous ayons les produits en main.C’est là que réside sa plus grande valeur : nous pouvons impacter les produits très tôt dans leur cycle de vie et fournir un retour significatif aux équipes de Conception et de Marketing avant que les spécifications finales ne soient fixées.Cela permet un meilleur engagement client et garantit que lorsque nos produits seront lancés, ils seront tous fonctionnels et vendables.Enfin, nous pouvons effectuer rapidement des analyses de sensibilité qui garantissent une fenêtre de processus robuste.Les produits qui répondent à ces critères au lancement sont plus rentables, garantissent des opérations de fabrication fluides et répondent mieux aux besoins des clients tout au long de leur durée de vie.