Scott Rubelscottrubel0, PhD, Ingegnere capo senior, NXP Semiconductors
Todd Jacobs , PhD, Ingegnere capo, NXP Semiconductors
Giacomo Nelson txnelson , ingegnere del software e cintura nera Six Sigma, lavoratore autonomo
Introduzione
I moderni progetti di chip presentano molteplici componenti IP con diverse sensibilità a processo, tensione e temperatura. Questi componenti devono funzionare in un'ampia gamma di condizioni operative, ma componenti diversi saranno più sollecitati in diverse fasi del processo: alcuni ad alta temperatura, altri a bassa tensione, ecc. Le loro prestazioni possono essere previste prima della produzione e poi caratterizzate quando il silicio effettivo è disponibile per i test; maggiore è il numero di componenti IP, maggiore sarà il lavoro di modellazione/caratterizzazione richiesto.
A questo si aggiungono i requisiti prestazionali specifici dei clienti: uno potrebbe richiedere una velocità operativa molto elevata con poca attenzione al consumo energetico, mentre un altro potrebbe avere requisiti di consumo energetico estremamente stringenti, arrivando persino a disattivare completamente alcuni componenti del chip. Questi requisiti non vengono soddisfatti eseguendo processi o versioni di prodotto separate; ogni lotto di produzione è invece un mix di diversi livelli di prestazioni.Ottimizzare questo mix per soddisfare le diverse esigenze dei clienti (bidoni) lungo l'intera finestra del processo di produzione ha un impatto enorme sul margine lordo: una quantità eccessiva o insufficiente di un dato contenitore determina un prodotto invendibile, il che equivale essenzialmente a una perdita di resa.
Le simulazioni Monte Carlo sono ottimali per simulare queste distribuzioni velocità-potenza e miscele di bin in diverse condizioni: possono gestire lSono coinvolti un gran numero di parametri statistici (tipicamente 40-60, più una matrice di covarianza) e limiti di bin (~20-100).L'estrazione e la documentazione coerenti dei parametri sono fondamentali per la loro gestione, ed è qui che entra in gioco lo scripting JMP:fornisce gli strumenti statistici e la capacità di journaling per garantire simulazioni "giuste al primo tentativo". Inoltre, la sua fIl tempo di esecuzione rapido (1-5 minuti/esecuzione) e la documentazione coerente consentono confronti di più casi aziendali in tempo reale.
Flusso di simulazione
Il diagramma seguente mostra il flusso di processo per una tipica serie di simulazioni. Si parte dalle caratteristiche prestazionali previste o effettive e da queste si estraggono i parametri statistici sottostanti che descrivono il prodotto; è quindi possibile scalare 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. A questa si sovrappongono i limiti dei bin (requisiti del cliente). L'integrazione numerica del volume della nuvola entro i limiti determina la distribuzione statistica dei bin per questa particolare nuvola. Lo script ripete automaticamente questa operazione in diverse condizioni di produzione per determinare la finestra di processo in cui il mix di bin è accettabile (nessuna matrice non vendibile). A questo punto, potremmo voler considerare diversi scenari, nel qual caso possiamo rieseguire la simulazione con scalature e/o limiti diversi, fino a raggiungere la combinazione ottimale di processo e limiti per un dato mix di domanda.

Distribuzioni di velocità e potenza e suddivisione in gruppi
Il grafico seguente mostra un tipico grafico (simulato) di velocità e potenza per un singolo dominio IP. La frequenza è quasi sempre una funzione lineare di log(corrente di dispersione statica = SIdd), quindi è descritta da una pendenza, un'intercetta e un RMSE (rumore). Il log(SIdd) stesso è descritto da una media e una deviazione standard. Poiché comunemente valutiamo le variazioni della deviazione standard, includiamo un parametro di scala come uno dei nostri input, il che significa che il cloud ha tre parametri per la potenza, più tre per ogni test di frequenza a ciascuna tensione e temperatura. Nel grafico seguente mostriamo un limite di un intervallo di campionamento: i die al di sotto di 0,32 logA di potenza statica e al di sopra di 1040 MHz (all'interno del riquadro verde) soddisfano i requisiti di questo intervallo.

Possiamo aumentare il numero di die superati regolando la tensione di prova nominale (entro l'intervallo specificato dal cliente). A tensioni più elevate, i componenti funzionano più velocemente, quindi un die più lento può ora soddisfare 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 sottostante mostra il die aggiuntivo che soddisfa i requisiti di bin ad alta tensione. Il contrario vale per tensioni più basse; il riquadro verde scuro mostra il die aggiuntivo catturato in questo scenario.

I die che non superano un bin, anche con tensioni diverse, potrebbero comunque superarne un altro. Il grafico seguente mostra due bin aggiuntivi che catturano questi die anomali: un bin a bassa velocità e bassa potenza (blu) e un bin ad alta velocità e alta potenza (rosso).

Naturalmente, molti die possono soddisfare più specifiche; il grafico seguente mostra queste regioni sovrapposte, con il die nel quadrante verde più scuro che soddisfa tutte le tensioni per i limiti delle specifiche verdi, così come per i limiti delle specifiche rosse e blu. Le regioni di binning sono descritte da una combinazione di OR logici sui domini di tensione, più AND logici sui domini di temperatura e IP. Questi die possono essere utilizzati per adattare l'alimentazione secondo necessità da un bin all'altro..

Esistono due modi per contare le matrici per ogni contenitore. Il primo è la distribuzione massima , che conta tutte le matrici possibili che possono soddisfare i requisiti di velocità/potenza del contenitore. Questo rappresenta un importante vincolo di offerta: se la domanda supera la distribuzione massima, l'offerta sarà sempre scarsa, con conseguente materiale non vendibile (perdita di resa). Per questa metrica, le matrici nelle regioni sovrapposte vengono conteggiate per ogni contenitore che superano, quindi la somma della distribuzione tra i contenitori può superare il 100%.
Il secondo metodo per contare gli stampi è il bin mix. In questa metodologia, l'utente specifica l' ordine di ordinamento in cui gli stampi vengono considerati per ciascun bin; una volta che uno stampo passa attraverso un bin, viene rimosso da ulteriori considerazioni. La somma delle distribuzioni del bin mix è quindi sempre pari al 100%, poiché non si verifica un doppio conteggio. Questo è il secondo principale vincolo di fornitura che consideriamo: determina se avremo abbastanza stampi per soddisfare la domanda nella produzione effettiva. A differenza della distribuzione massima, la distribuzione del bin mix può essere modificata utilizzando un diverso ordine di ordinamento e comunemente valutiamo queste opzioni durante l'intero ciclo di vita di un prodotto.
La tabella seguente mostra come le distribuzioni massima e bin mix differiscono per un set di cinque dadi:

Sebbene i principi di assegnazione e conteggio dei bin siano semplici, l'implementazione può essere molto complessa. È qui che lo scripting si rivela un valido aiuto: garantisce che la logica venga eseguita correttamente per ogni dado ogni volta, eliminando una potenziale fonte di errore per l'utente.
Il file di configurazione di input
Vogliamo contenere tutti gli innumerevoli input di 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 simulazioni effettive. Fortunatamente, JMP può supportare tutto questo in un unico oggetto dati, che utilizziamo per tutti i nostri input. Un esempio è il seguente:

La parte superiore viene utilizzata per varie routine di scripting. Poiché i nomi dei parametri sono spesso lunghi e complessi, includiamo la possibilità di rinominarli con un nome meno complesso 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 successive possono semplicemente utilizzare questi parametri memorizzati. Gli utenti non devono memorizzare il file di dati separatamente, consentendo a chiunque di eseguire una simulazione identica utilizzando il file di configurazione del prodotto. Questo evita incongruenze quando gli utenti basano le proprie analisi su set di dati di input diversi.
Lo script include anche un'opzione per convalidare la tabella di configurazione. Questo è uno strumento fondamentale per consentire simulazioni "al primo tentativo", poiché verifica una serie di potenziali errori che potrebbero produrre risultati spuri. Anziché affidarsi ogni volta alla revisione di utenti esperti, lo script garantisce che non manchino input chiave (limiti, test, parametri di raggruppamento di temperatura o tensione, ecc.) e verifica anche la presenza di errori più sottili che potrebbero produrre simulazioni fasulle (ma realistiche): parametri perfettamente correlati, correlazioni non fisiche o combinazioni di bin/pattern/raggruppamento che garantiscono distribuzioni pari a zero o al 100% in ogni momento.
Output del giornale
Utilizziamo la funzionalità di 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 (è possibile tracciare più coppie di parametri, se desiderato) e i grafici delle distribuzioni di capacità massima e di bin mix nell'intero intervallo del processo di produzione. Oltre ai grafici, il file include anche i parametri statistici e tutti gli altri input dal file di configurazione, in modo da avere una tracciabilità completa di tutti i dettagli della simulazione sottostante. Questo è fondamentale quando ci troviamo nelle prime fasi del ciclo di vita di un prodotto e stiamo considerando diversi scenari: la mancata documentazione di uno qualsiasi degli input sottostanti può causare molta confusione, ma programmando l'output garantiamo che ciò non accada mai.

Modellazione dello scenario
Grazie all'automazione della documentazione, possiamo concentrarci sulla valutazione rapida di diversi scenari. Poiché il tempo di simulazione è molto breve (1-5 minuti), quelli più comuni possono essere valutati in tempo reale durante le riunioni, facilitando notevolmente le discussioni con i team di Marketing e Design. Di seguito mostriamo alcuni esempi, iniziando da uno dei più semplici: la scalabilità della varianza di processo. Il primo grafico mostra l'impatto sulla distribuzione massima di un singolo contenitore quando il controllo di processo in fabbrica migliora: la distribuzione diminuisce in alcune regioni, ma al target ottimale è significativamente migliore. Questa situazione è così comune che la scalabilità della varianza è un parametro regolabile nel file di configurazione.

La seconda variante, estremamente comune da esplorare, riguarda la modifica dell'ordinamento dei bin; questo può verificarsi durante l'intero ciclo di vita di un prodotto. I grafici seguenti mostrano la distribuzione del mix di bin nel processo di produzione quando l'ordinamento è: arancione, rosso, verde chiaro, verde scuro, blu. (Il grafico della distribuzione massima non è mostrato qui, poiché non è influenzato dall'ordinamento.) Al target del processo (linea nera verticale) domina il bin arancione, con piccole quantità di matrice in bin verde chiaro e rosso, e praticamente nessuna distribuzione di blu o verde scuro.

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

Sebbene la distribuzione dei contenitori arancioni rimanga invariata, una parte significativa dei dadi (circa il 30%) ora rientrerà nel contenitore verde scuro anziché rosso o verde chiaro come in precedenza. Questo risultato può essere confrontato con la domanda dei clienti per determinare se il programma di test debba essere modificato.
Un altro scenario comune che richiede una simulazione è la selezione degli stampi pre-assemblaggio. In questo caso, i prodotti possono essere assemblati in package diversi a seconda delle loro prestazioni. Oltre a comprendere il mix complessivo di bin, ora vogliamo capire quale sarà il mix per ciascun tipo di package, introducendo un ulteriore livello di complessità. Vogliamo anche capire quanto bene i nostri test di pre-assemblaggio indirizzano lo stampo al package corretto. Questo è facile da fare con lo script JMP, perché i dati di superamento/fallimento per ogni test e ogni bin sono inclusi per ogni stampo. Nel grafico sottostante possiamo vedere che gli stampi che non superano il test di velocità di pre-assemblaggio del wafer (turchese) sono effettivamente tra i più lenti quando testati dopo l'assemblaggio secondo ACSCAN_PLAT_MIN_FMAX, ma la correlazione non è perfetta: il die turchese si sovrappone piuttosto ampiamente con i limiti di altri bin (si noti che questa simulazione utilizza test e bin diversi rispetto all'esempio precedente).

L'adeguatezza di questa correlazione per l'utilizzo in produzione dipende dall'accettabilità delle distribuzioni di bin per confezione risultanti. I grafici seguenti mostrano la differenza tra la costruzione di tutti i dadi (a sinistra) o di tutti tranne quello turchese (a destra). Per chiarezza, i grafici corrispondenti per le distribuzioni di bin mix non sono mostrati, ma saranno considerati parte della valutazione.

Modellazione dello scenario: limiti variabili
Una situazione comune, ma un po' più complessa, è quando desideriamo considerare diversi limiti di bin; questo si verifica più spesso durante la fase di definizione del prodotto. Potrebbe esserci qualche incertezza sulla potenza da offrire a un cliente, oppure il team di progettazione potrebbe voler comprendere le implicazioni di un'esecuzione più lenta di un componente IP rispetto a quanto desiderato. Il nostro script di simulazione offre la flessibilità necessaria per variare i limiti di bin in passaggi discreti; possiamo quindi studiarne l'impatto sulla 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 analizzare a nostro piacimento. L'esempio seguente mostra l'output standard per la distribuzione massima "Bin 1 Combo" quando il limite di potenza viene variato in 11 passaggi: il picco diventa più basso e si sposta verso destra per limiti di potenza più restrittivi. (I bin 2-5 hanno solo curve singole perché i loro limiti non cambiano. A destra mostriamo un grafico personalizzato che traccia la distribuzione del bin 1 nel processo di destinazione (linea nera verticale), in funzione del limite del bin (etichettato dal numero di passo; possiamo convertirlo in valori di potenza effettivi se necessario). Come al solito, potremmo eseguire questa analisi anche sulla distribuzione del mix di bin, se lo desideriamo.

Dal grafico a destra possiamo vedere che abbiamo un margine di manovra per restringere il limite di potenza di 3-4 incrementi prima che le distribuzioni del Bin 1 inizino a diminuire drasticamente; a quel punto, la fornitura diventa molto sensibile a piccole variazioni. Informeremo il team Marketing di queste informazioni mentre valuta le specifiche di potenza da offrire ai clienti.
Potremmo anche voler valutare la sensibilità della velocità a una particolare porzione di IP. Alteriamo nuovamente i limiti dei bin e consideriamo tre parametri. Il primo è il target di processo ottimale (posizione della distribuzione del picco sull'asse X): questo non è regolabile all'infinito, e non è un'operazione banale, quindi non vogliamo che il target di processo sia sensibile alla perdita di velocità. Abbiamo anche bisogno di una finestra di processo ragionevole (l'intervallo in cui l'offerta corrisponde alla domanda) e, naturalmente, abbiamo bisogno di un numero sufficiente di die che passino quel bin per soddisfare gli ordini dei clienti. Tutti e tre i grafici seguenti raccontano una storia simile: possiamo tollerare una perdita di velocità fino a circa 40 MHz, ma oltre questo limite il target di processo ottimale è molto sensibile a qualsiasi variazione di velocità, la finestra di processo si riduce rapidamente e la fornitura del bin stesso inizia a collassare. Questo input fornisce al team di progettazione un criterio chiaro per il successo e una solida idea di quanto margine dovrebbero includere nelle loro simulazioni.

In situazioni particolarmente complesse, le variazioni di velocità e potenza possono essere considerate simultaneamente; ad esempio, se il miglioramento del margine di velocità comporta un costo energetico. Il journaling integrato nello strumento di scripting è particolarmente importante in questo caso, documentando automaticamente tutte le variazioni degli input.
Riepilogo
L'utilizzo di uno script JMP ha notevolmente migliorato le nostre capacità di modellazione delle prestazioni dei prodotti. Possiamo gestire input complessi con la convalida integrata per evitare errori comuni da parte degli utenti. Lo script gestisce la matematica alla base della simulazione Monte Carlo, consentendo agli utenti di concentrarsi sui risultati a valore aggiunto piuttosto che sui dettagli statistici. Garantisce inoltre un output coerente che comprende le nostre best practice, in modo che ogni analisi sia documentata in modo approfondito senza la necessità di revisione da parte di esperti o di lunghe specifiche di documentazione.
Lo strumento può essere utilizzato con dati di silicio o arricchito con stime delle prestazioni prima di avere i prodotti in mano. È qui che risiede il suo valore maggiore: possiamo intervenire sui prodotti in una fase molto precoce del loro ciclo di vita e fornire un feedback significativo ai team di progettazione e marketing prima che le specifiche finali vengano definite. Questo consente un migliore coinvolgimento dei clienti e garantisce che, al momento del lancio dei nostri prodotti, tutti gli stampi funzionali siano vendibili. Infine, possiamo eseguire rapidamente analisi di sensibilità che garantiscono una finestra di processo solida. 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 per tutto il loro ciclo di vita.