Scott Rubel rublo scozzese0 , PhD, Ingegnere principale senior, NXP Semiconductors
Todd Jacobs , PhD, Ingegnere Principale, NXP Semiconductors
Giacomo Nelson txnelson , Ingegnere informatico e cintura nera Six Sigma, libero professionista
introduzione
I moderni progetti di chip hanno più componenti IP con diverse sensibilità di processo, tensione e temperatura.Questi componenti devono tutti funzionare in un'ampia gamma di condizioni operative, ma componenti diversi saranno più impegnativi in diversi angoli del processo: alcuni ad alta temperatura, altri a bassa tensione, ecc.Le loro prestazioni possono essere previste prima della produzione e quindi caratterizzate quando il silicio effettivo è disponibile per i test; maggiore è il numero dei componenti IP, maggiore è il lavoro di modellazione/caratterizzazione richiesto.
I clienti hanno i propri requisiti prestazionali oltre a questo: uno potrebbe richiedere una velocità operativa molto elevata con poca preoccupazione per il consumo energetico, mentre un altro potrebbe avere requisiti di alimentazione estremamente severi, eventualmente spegnendo completamente alcuni componenti del chip.Questi requisiti non vengono soddisfatti eseguendo processi o versioni di prodotto separati; ogni lotto di produzione è invece un mix di diversi gradi prestazionali.Ottimizzare questo mix per soddisfare le diverse esigenze dei clienti ( Sono ) in tutta la finestra del processo di produzione ha un enorme impatto sul margine lordo: una quantità eccessiva o insufficiente di un determinato contenitore si traduce in un prodotto invendibile, il che è essenzialmente una perdita di rendimento.
Le simulazioni Monte Carlo sono ottimali per simulare queste distribuzioni velocità-potenza e miscele di contenitori in diverse condizioni: possono gestire l un gran numero di parametri statistici (tipicamente 40 – 60, più una matrice di covarianza) e limiti di bin (~ 20-100) coinvolti.L'estrazione e la documentazione coerenti dei parametri sono fondamentali per gestirli, ed è qui che entra in gioco lo scripting JMP: it fornisce gli strumenti statistici e la funzionalità di journaling per garantire simulazioni "giuste al primo tentativo".Inoltre, la sua f Il tempo di esecuzione più breve (1-5 minuti/esecuzione) e la documentazione coerente consentono confronti multipli di casi aziendali in tempo reale.
Flusso di simulazione
Il diagramma seguente mostra il flusso del processo per una serie tipica di esecuzioni di simulazione.Partiamo dalle caratteristiche prestazionali previste o effettive e da esse estraiamo i parametri statistici sottostanti che descrivono il prodotto; potremmo quindi ridimensionare questi parametri (in particolare la varianza) per valutare diversi scenari.A questo punto il motore Monte Carlo genera una "nuvola" simulata di distribuzioni velocità-potenza.Sovrapposti a questo ci sono i limiti del contenitore (requisiti del cliente).L'integrazione numerica del volume della nuvola entro i limiti determina la distribuzione statistica dei contenitori per questa particolare nuvola.Lo script lo ripete automaticamente in diverse condizioni di produzione per determinare la finestra di processo durante la quale la miscela di contenitori è accettabile (nessuna matrice non vendibile).A questo punto potremmo voler considerare diversi scenari, nel qual caso possiamo rieseguire la simulazione con diverse scale e/o limiti, fino a raggiungere finalmente la combinazione ottimale di processo e limiti per un dato mix di domanda.

Distribuzioni velocità-potenza e binning
Il grafico seguente mostra una velocità tipica (simulata) rispetto alla velocità diagramma di potenza per un singolo dominio IP.La frequenza è quasi sempre una funzione lineare del log (corrente di dispersione statica = SIdd), quindi è descritta da una pendenza, un'intercetta e un RMSE (rumore).log(SIdd) stesso è descritto da una media e da una deviazione standard.Poiché comunemente valutiamo le modifiche della deviazione standard, includiamo un parametro di ridimensionamento come uno dei nostri input, il che significa che il cloud ha tre parametri per la potenza, più tre per ciascun test di frequenza a ciascuna tensione e temperatura.Nel grafico sottostante mostriamo un limite di bin di esempio: quelli al di sotto di 0,32 logA di potenza statica e al di sopra di 1040 MHz (all'interno del riquadro verde) stanno superando i requisiti di questo bin.

Possiamo espandere il numero di matrici passanti regolando la tensione di prova nominale (entro l'intervallo delle specifiche del cliente).A tensioni più elevate le parti funzionano più velocemente, quindi più lentamente possono ora superare i requisiti di frequenza.Tuttavia, il componente consuma anche più energia statica e dinamica e per questo esiste un budget fisso.Per rimanere entro tale budget, la componente statica consentita a una tensione di riferimento fissa deve essere inferiore.Il riquadro verde chiaro nell'immagine seguente mostra il die aggiuntivo che soddisfa i requisiti del contenitore ad alta tensione.È vero il contrario per tensioni inferiori; la casella verde scuro mostra i dadi aggiuntivi catturati in questo scenario.

Quelli che non superano un contenitore, anche con voltaggi diversi, possono comunque passarne un altro.Il grafico seguente mostra due contenitori aggiuntivi che catturano questi valori anomali: un contenitore a bassa velocità e basso consumo (blu) e un contenitore ad alta velocità e ad alta potenza (rosso).

Naturalmente molti stampi possono superare più specifiche; il grafico successivo mostra queste regioni sovrapposte, con quelle nel quadrante verde più scuro che superano tutte le tensioni per i limiti delle specifiche verdi, nonché per i limiti delle specifiche rosso e blu.Le regioni di binning sono descritte da una combinazione di OR logici tra tensione, più AND logici tra temperatura e domini IP.Questi stampi possono essere utilizzati per flettere la fornitura secondo necessità da un contenitore all'altro .

Ci sono due modi per contare i dadi per ogni contenitore.Il primo è il massimo distribuzione, contando tutti i possibili dadi che possono superare i requisiti di velocità/potenza del contenitore.Questo è un importante vincolo di offerta: se la domanda supera la distribuzione massima, l’offerta sarà sempre scarsa, con conseguente materiale non vendibile (perdita di rendimento).Per questa metrica, i dadi nelle regioni sovrapposte contano per ogni contenitore che attraversano, quindi la somma della distribuzione tra i contenitori può superare il 100%.
Il secondo modo per contare i dadi è il Sono misto. In questa metodologia l'utente specifica il ordinamento in cui vengono considerati i dadi per ogni contenitore; una volta che un dado supera un contenitore, viene rimosso da ulteriori considerazioni.La somma delle distribuzioni del mix bin è quindi sempre pari al 100%, poiché non avviene alcun doppio conteggio.Questo è il secondo principale vincolo di offerta che consideriamo: determina se avremo abbastanza stampi per soddisfare la domanda nella produzione effettiva.A differenza della distribuzione massima, la distribuzione della combinazione di contenitori può essere modificata utilizzando un diverso ordinamento e in genere valutiamo queste opzioni durante il ciclo di vita di un prodotto.
La tabella seguente mostra come differiscono le distribuzioni del mix massimo e del contenitore per un set di cinque matrici:

Sebbene i principi di assegnazione e conteggio dei contenitori siano semplici, l'implementazione può essere molto complessa.È qui che lo scripting è un potente aiuto: garantisce che la logica venga eseguita correttamente per ciascun dado ogni volta, eliminando una delle principali fonti potenziali di errore dell'utente.
Il file di configurazione dell'input
Desideriamo contenere tutta la miriade di input per una simulazione in un unico file per una documentazione semplice e coerente.Inoltre, vorremmo un'interfaccia di script che gestisca le estrazioni statistiche e le esecuzioni effettive delle simulazioni.Fortunatamente, JMP può supportare tutto questo in un unico oggetto dati, che utilizziamo per tutti i nostri input.Un esempio è simile al seguente:

La regione superiore viene utilizzata per varie routine di scripting.Poiché i nomi dei parametri sono spesso lunghi e complessi, includiamo la possibilità di rinominarli in qualcosa di meno complicato utilizzando i comandi di analisi del testo di JMP.Durante l'esecuzione iniziale basata su un file di dati, lo script estrae e memorizza tutti i parametri statistici necessari nel file di configurazione; le esecuzioni future possono semplicemente utilizzare questi parametri memorizzati.Gli utenti non hanno bisogno di archiviare il file di dati separatamente, consentendo a chiunque di eseguire una simulazione identica utilizzando il file di configurazione del prodotto.Ciò evita incoerenze quando gli utenti basano le loro analisi su diversi set di dati di input.
Lo script include anche un'opzione per convalidare la tabella di configurazione.Si tratta di uno strumento fondamentale per consentire simulazioni "giuste la prima volta", poiché controlla una serie di potenziali errori che potrebbero produrre risultati spuri.Anziché fare affidamento ogni volta sulla revisione di utenti esperti, lo script garantisce che non manchi alcun input chiave (limiti, test, parametri di raggruppamento di temperatura o tensione, ecc.) e controlla anche errori più sottili che potrebbero produrre risultati fasulli (ma dall'aspetto realistico). ) simulazioni: parametri perfettamente correlati, correlazioni non fisiche o combinazioni di contenitori/modelli/raggruppamenti che garantiscono distribuzioni pari a zero o 100% in ogni momento.
Uscita del diario
Utilizziamo la funzionalità dei file journal di JMP per aggregare e standardizzare i nostri output, garantendo le migliori pratiche per la documentazione.Le caratteristiche chiave per la maggior parte delle analisi sono la distribuzione simulata di velocità e potenza (se lo si desidera è possibile tracciare più coppie di parametri) e i grafici delle distribuzioni della capacità massima e del mix bin nell'intervallo del processo di produzione.Oltre ai grafici il file include anche i parametri statistici e tutti gli altri input del file di configurazione, in modo da avere la completa tracciabilità di tutti i dettagli della simulazione sottostante.Questo è fondamentale quando siamo all'inizio del ciclo di vita di un prodotto e consideriamo diversi scenari: la mancata documentazione di uno qualsiasi degli input sottostanti può causare molta confusione, ma creando script per l'output ci assicuriamo che ciò non accada mai.

Modellazione degli scenari
Grazie alla documentazione automatizzata, siamo in grado di concentrarci sulla valutazione rapida di diversi scenari.Poiché il tempo di simulazione è molto breve (1-5 minuti), quelle più comuni possono essere valutate in tempo reale durante le riunioni, facilitando notevolmente le discussioni con i team di Marketing e Design.Di seguito mostriamo alcuni esempi, a partire da uno dei più semplici: ridimensionare la varianza del processo.Il primo grafico mostra l'impatto sulla distribuzione massima di un singolo contenitore quando il controllo del processo di fabbrica migliora: la distribuzione diminuisce in alcune regioni, ma al target ottimale è significativamente migliore.Questa situazione è così comune che il ridimensionamento della varianza è un parametro sintonizzabile nel file di configurazione.

La seconda variante estremamente comune da esplorare è quella di modificare l'ordinamento dei contenitori; ciò può verificarsi durante tutto il ciclo di vita di un prodotto.I grafici seguenti mostrano la distribuzione della combinazione di contenitori nel processo di produzione quando l'ordinamento è: arancione, rosso, verde chiaro, verde scuro, blu.(Il grafico della distribuzione massima non viene mostrato qui, poiché non è influenzato dall'ordinamento.)In corrispondenza dell'obiettivo del processo (linea nera verticale) domina il contenitore arancione, con piccole quantità di dado verde chiaro e rosso e praticamente nessuna distribuzione blu o verde scuro.

Vogliamo ora valutare l'effetto dello scambio dell'ordinamento dei contenitori rosso e verde scuro: quanto meno dei primi e quanto più dei secondi saremo ora in grado di spedire?L'ordinamento è un parametro che possiamo modificare facilmente nel file di configurazione, quindi l'esecuzione di questo confronto richiede solo un paio di minuti; il grafico seguente mostra il risultato (notare che il contenitore verde chiaro è completamente coperto dal contenitore verde scuro, che viene testato per primo nel nuovo ordine).

Mentre la distribuzione del contenitore arancione rimane invariata, una parte significativa del dado (~30%) ora cadrà nel contenitore verde scuro anziché rosso o verde chiaro come prima.Questo risultato può essere confrontato con la domanda del cliente per determinare se il programma di test debba essere modificato.
Un altro scenario comune che richiede la simulazione è lo smistamento degli stampi di preassemblaggio.In questo caso, i prodotti possono essere integrati in pacchetti diversi a seconda delle loro prestazioni.Oltre a comprendere il mix complessivo dei contenitori, ora desideriamo capire quale sarà il mix per ciascun tipo di pacco, introducendo un ulteriore livello di complessità.Desideriamo anche capire quanto bene i nostri test di pre-assemblaggio portino all'imballaggio corretto.Questo è facile da fare con lo script JMP, perché i dati di superamento/fallimento per ogni test e ogni contenitore sono inclusi per ogni die.Nel grafico seguente possiamo vedere che il die che non supera il test di velocità di pre-assemblaggio del wafer (turchese) è effettivamente tra i più lenti quando testato dopo l'assemblaggio su ACSCAN_PLAT_MIN_FMAX, ma la correlazione non è perfetta: il die turchese si sovrappone abbastanza pesantemente con altri limiti dei contenitori (notare che questa simulazione utilizza test e contenitori diversi rispetto all'esempio precedente).

Se questa correlazione è sufficientemente buona da essere utilizzata nella produzione dipende dal fatto che le distribuzioni dei contenitori per confezione risultanti siano accettabili.I grafici seguenti mostrano la differenza tra costruire tutti i dadi (a sinistra) o tutti Ma il dado turchese (a destra).Per chiarezza, i grafici corrispondenti per le distribuzioni bin mix non vengono mostrati, ma verrebbero considerati come parte della valutazione.

Modellazione degli scenari: limiti variabili
Una situazione comune, ma un po’ più complicata, è quando desideriamo considerare diversi limiti di contenitori; ciò avviene più spesso durante la fase di definizione del prodotto.Potrebbe esserci qualche incertezza sul potere da offrire a un cliente, oppure il team di progettazione potrebbe voler comprendere le implicazioni di un pezzo di IP che funziona più lentamente del previsto.Il nostro script di simulazione ha la flessibilità di variare i limiti dei contenitori in passaggi discreti; possiamo quindi studiare l'impatto della distribuzione.Poiché queste analisi possono essere molto diverse, non generiamo output grafici speciali, ma i dati di distribuzione vengono facilmente salvati come tabelle di dati separate che possiamo studiare come preferiamo.L'esempio seguente mostra l'uscita standard per la distribuzione massima "Bin 1 Combo" poiché il limite di potenza viene variato in 11 passaggi: il picco diventa più basso e si sposta a destra per limiti di potenza più ristretti.(I contenitori 2-5 hanno solo curve singole perché i loro limiti non cambiano.A destra mostriamo un grafico personalizzato che traccia la distribuzione del contenitore 1 nel processo target (linea nera verticale), in funzione del limite del contenitore (etichettato dal numero del passaggio; possiamo convertirlo in valori di potenza effettivi secondo necessità).Come al solito, se lo si desidera, è possibile eseguire questa analisi anche sulla distribuzione del mix dei contenitori.

Dal grafico a destra possiamo vedere che abbiamo spazio per restringere il limite di potenza di 3-4 passi prima che le distribuzioni del Bin 1 inizino a diminuire bruscamente; a quel punto l'offerta diventa molto sensibile a piccoli cambiamenti.Forniremmo queste informazioni al team di marketing mentre valutano quali specifiche di potenza offrire a un cliente.
Potremmo anche voler valutare la sensibilità alla velocità di un particolare pezzo di IP.Alziamo nuovamente i limiti del contenitore e consideriamo tre parametri.Il primo è l'obiettivo ottimale del processo (posizione della distribuzione del picco sull'asse X): questo non è infinitamente regolabile e non è banale, quindi non vogliamo che l'obiettivo del processo sia sensibile alla perdita di velocità.Abbiamo anche bisogno di una finestra di processo ragionevole (l’intervallo entro il quale l’offerta corrisponde alla domanda) e, naturalmente, abbiamo bisogno di un numero sufficiente di persone che passano da quel contenitore per soddisfare gli ordini dei clienti.Tutti e tre i grafici seguenti raccontano una storia simile: possiamo tollerare una perdita di velocità fino a ~40 MHz, ma oltre tale limite il target di processo ottimale è molto sensibile a qualsiasi variazione di velocità, la finestra del processo si restringe rapidamente e la fornitura del contenitore stesso inizia a diminuire. crollo.Questo input fornisce al team di progettazione un chiaro criterio di successo e una solida idea di quanto margine dovrebbero includere nelle loro simulazioni.

In situazioni particolarmente complesse è possibile considerare contemporaneamente variazioni di velocità e di potenza; ad esempio, se il miglioramento del margine di velocità comporta un costo energetico.In questo caso è particolarmente importante il journaling integrato nello strumento di scripting, che documenta automaticamente tutti gli input modificati.
Riepilogo
L'utilizzo di uno script JMP ha notevolmente migliorato le nostre capacità di modellazione delle prestazioni del prodotto.Possiamo gestire input complessi con convalida integrata per evitare errori comuni degli utenti.Lo script gestisce i calcoli alla base della simulazione Monte Carlo stessa, consentendo agli utenti di concentrarsi sui risultati a valore aggiunto piuttosto che sui dettagli statistici.Garantisce inoltre risultati coerenti che comprendono le nostre migliori pratiche, in modo che ogni analisi sia accuratamente documentata senza la necessità di una revisione di esperti o di lunghe specifiche di documentazione.
Lo strumento può essere utilizzato con dati sul silicio o arricchito con stime delle prestazioni prima di avere i prodotti in mano.È qui che risiede il suo valore più grande: possiamo avere un impatto sui prodotti nelle prime fasi del loro ciclo di vita e fornire feedback significativi ai team di progettazione e marketing prima che le specifiche finali siano fissate.Ciò consente un migliore coinvolgimento dei clienti e garantisce che quando i nostri prodotti vengono lanciati siano tutti funzionali e vendibili.Infine, possiamo eseguire rapidamente analisi di sensibilità che garantiscono una solida finestra di processo.I prodotti che soddisfano questi criteri al momento del lancio sono più redditizi, garantiscono operazioni di produzione fluide e soddisfano meglio le esigenze dei clienti durante l’intero ciclo di vita.