Il mio progetto riguarda l'applicazione di un rivestimento in soluzione su un wafer semiconduttore e l'ottimizzazione degli input di processo. L'obiettivo è migliorare la capacità di targeting per ottenere uno spessore uniforme e minimizzare la deviazione standard dello spessore, fornendo una misurazione dello spessore più uniforme su tutta la superficie del wafer. Gli strumenti utilizzati in JMP includono DOE, analisi dei minimi quadrati e l'inclusione di un profiler di parametri con simulatore di rumore/deviazione standard per trovare le impostazioni più appropriate.
Sono Nicholas. Sono un ingegnere presso Medtronic e utilizzo JMP piuttosto spesso. In questa presentazione, mi concentrerò sulla codifica di spin e sulla tecnologia che la circonda, e su come utilizziamo JMP per costruire un DOE, per poi mettere insieme un modello di adattamento per comprendere l'uso del profiler e capire come ottimizzare e raggiungere determinati spessori sullo strato di rivestimento del wafer.
Come introduzione, come ho appena detto, in questa presentazione utilizzeremo JMP per analizzare la codifica dei semiconduttori. Come potete vedere nel diagramma in alto a sinistra, questa tecnologia funziona con una soluzione che distribuiamo centralmente sul wafer, un wafer posizionato su un piedistallo che ruoterà come avviene con lo spin coating. Abbiamo quindi diversi profili impostati, in cui la soluzione funzionerà a determinate velocità per un determinato periodo di tempo.
Di solito, il metodo prevede una fase iniziale a velocità ridotta, che distribuisce la soluzione su tutta la superficie. Successivamente, possiamo aumentare la velocità per un periodo di tempo più lungo e, a seconda della velocità impostata, possiamo ottenere spessori diversi sullo strato di rivestimento.
Lo scopo di questo, e ciò che vogliamo definire all'interno del nostro DOE, è utilizzare il DOE per individuare spessori diversi, comprendere come le finestre di processo per le diverse velocità di rotazione e i volumi erogati possono influire sul nostro strato codificato, sia in termini di uniformità sull'intera superficie del wafer che di spessore di uscita.
Potete vedere qui a destra, questi sono i diversi fattori che stiamo utilizzando. Faremo un DOE a sei fattori. Abbiamo i nostri valori minimi e massimi che imposteremo, e li esaminerò più approfonditamente quando parleremo della demo e di come vengono effettivamente applicati nel DOE. Ma essenzialmente, quello che stiamo cercando di fare è costruire un modello usando queste finestre, cercando di ottenere un buon R-quadrato, che ci dirà quanto è efficace quel modello nel prevedere i nostri valori anomali, e poi usarlo per regolare e indirizzare determinati output, come lo spessore, e poi cercare di minimizzare tale variabilità su superficie o uniformità.
Approfondiremo un po' di più una volta avviata la demo. Ma potete vedere qui a sinistra: questa è essenzialmente una panoramica di come apparirà lo spessore del nostro rivestimento. Stiamo cercando di ottenere un risultato il più uniforme possibile usando un grafico di contorno. Siamo in grado di vedere dove potrebbero esserci dei punti alti o bassi sulla superficie. Passiamo quindi a un modello di adattamento, e questo è essenzialmente ciò che vedremo, dove sono rappresentati graficamente tutti i nostri dati provenienti dal DOE. Credo che abbiamo un po' di stack qui, ed è per questo che vedo intervalli elevati. Ma poi abbiamo anche avuto alcuni valori anomali da uno dei wafer che abbiamo costruito. Ne parlerò nelle prossime diapositive.
Ma poi, essenzialmente, da queste esecuzioni e analisi, JMP crea un profiler, il cui valore di desiderabilità può essere impostato in modo da raggiungere uno spessore di 10 micron o 10.000 nanometri, come potete vedere qui. A questo punto, vogliamo anche regolare i fattori per ridurre al minimo qualsiasi deviazione standard sulla superficie del wafer. Approfondirò l'argomento tra un attimo.
Ecco solo una panoramica del DOE. Mettendo insieme tutti questi dati, i valori minimi e massimi dei nostri sei fattori, otterremo una tabella che include tutte le esecuzioni. Questa è l'esecuzione che abbiamo eseguito. In realtà, probabilmente ora passerò alla demo, aprendo JMP. Un attimo. Se dovessi spiegare come eseguire un DOE, quello che di solito faremmo è... Dammi un attimo. Classico... No, scusa. DOE personalizzato. È proprio qui in alto.
Questo fattore aprirà una tabella pop-up in cui è possibile inserire output e input. Per questa build, avevamo un target di spessore. Quello che ho aggiunto era una risposta per i nostri output. Volevo che corrispondesse a un certo spessore. Questo è il nome della nostra risposta, spessore, target di corrispondenza. Per noi, il range inferiore sarà 8.000 e quello superiore sarà 12.000. Questi sono i nanometri di profondità sullo strato di rivestimento che abbiamo. Posso aggiungere una M per le unità.
Poi vogliamo anche considerare la nostra uniformità. Osserverò la deviazione standard all'interno delle misurazioni dello spessore lungo il wafer, e la chiameremo uniformità. Vogliamo minimizzarla il più possibile. Quando si ha una deviazione standard più elevata, si nota molta variabilità. Non abbiamo un'unità di misura per questo.
Ora avremo i nostri fattori. Per noi, avevamo sei fattori diversi che erano continui. Avevamo il volume di erogazione e la velocità di rotazione. Faremo ruotare il wafer mentre eroghiamo la velocità. Faremo ruotare il wafer mentre lo eroghiamo centralmente sul wafer. Abbiamo rotazione uno, velocità, rotazione due, o rotazione uno, tempo, e poi rotazione due, velocità, e rotazione due, tempo. Per questa fase, è un fattore in tre fasi. Abbiamo la nostra erogazione, la rotazione, una rotazione uno, dove abbiamo parlato di come distribuire la soluzione. Poi la rotazione due è dove ci concentriamo davvero e su... Oh, no, scusate. Mi scuso.
La velocità di erogazione è l'erogazione della... O la dispersione della soluzione sul wafer. La prima rotazione è quella che effettivamente volevamo prendere di mira, dove acceleriamo e cerchiamo di raggiungere un certo spessore, e questo sarà il punto più significativo per raggiungere lo spessore. Poi la seconda rotazione, che è il nostro ultimo secondo, un aumento di velocità molto rapido, serve solo a eliminare eventuali accumuli lungo i bordi. In realtà, si tratta solo di una rapida sbattitura del wafer per rimuovere eventuali accumuli di soluzione lungo il bordo.
Per questa build, cercherò di procedere un po' più velocemente. Abbiamo lavorato con un volume da 8,5 a 10,5 millilitri. Avevamo impostato un regime di giri al minuto da 100 a 400. Questo solo per distribuire la soluzione. Poi abbiamo impostato un regime da 500 a 700 giri al minuto per raggiungere un certo spessore. Abbiamo poi diluito la soluzione per renderla più fluida. Questo processo richiederà dai 40 ai 60 secondi.
Poi l'ultima cosa che abbiamo fatto è stata quella velocità di snap davvero elevata. Non sappiamo davvero, almeno all'inizio di questa build, a quale velocità lavorare. Abbiamo impostato un intervallo piuttosto drastico, da 1200 a 2400 RPM, ma solo da due a sei secondi. Le finestre di processo che abbiamo sono piuttosto ampie. Ci aspettiamo risultati piuttosto drastici su alcuni dei valori più estremi. Ma questo è essenzialmente il modo in cui abbiamo impostato il nostro DOE, le nostre X e le nostre Y. Premo "Continua".
Inserirò le nostre unità di misura molto velocemente. Avremo i giri al secondo e il tempo, che è... Scusate. Giri al minuto come unità di misura per la velocità e secondi come unità di misura per il tempo. Per il volume, usiamo i millilitri. Di nuovo, per la velocità si usa il numero di giri al minuto. Per noi, di solito aggiungo un'interazione secondaria solo per aggiungere ulteriore robustezza al modello. Questo ci aiuterà anche a capire come ciascuna variabile interagisce con le altre. Si può continuare a salire nelle interazioni del terzo e quarto fattore, ma sarà un po' troppo. Non ne abbiamo bisogno per questa build.
Per la nostra build, abbiamo finito per usare 24. Il bello di JMP è che ti dice qual è il minimo richiesto e poi qual è il nostro valore predefinito. Nel settore dei semiconduttori, lavoriamo con cassette che contengono ogni wafer, e le nostre cassette possono contenere fino a 24 wafer alla volta. Stiamo guardando a un valore intermedio rispetto al minimo predefinito, 24. Questo corrisponde esattamente a quello che caricheremmo le nostre apparecchiature per l'esecuzione. Posso quindi impostarlo. Faremo funzionare 24 wafer in questo intero DOE, e poi si dovrebbe premere "Crea un progetto".
JMP lo calcolerà molto rapidamente e genererà una tabella con tutti i nostri fattori e poi le colonne per i nostri risultati. Potete vedere qui che ha un ordine di esecuzione, da 1 a 24, e poi ciascuno dei fattori che abbiamo impostato. Per prima cosa, eseguiamo e vogliamo eseguire ciascuno di questi fattori di controllo e poi, allo stesso modo, eseguiamo l'operazione su tutti i 24 wafer. Quello che potete fare è anche guardare l'analisi di potenza e vedere quanto è solida questa build. È nell'ordine dei 60, quindi potrebbe essere un po' più potente, ma funzionerà per la nostra esigenza di questa analisi iniziale della finestra di processo.
Ora clicco su "Crea tabella". L'ordine di esecuzione è stato randomizzato, e questo apre questa tabella. Abbiamo tutti i fattori come mostrato nell'ultima tabella, e poi ci vengono fornite le opzioni per l'output di spessore e la deviazione standard. Ho aggiunto accidentalmente un terzo fattore, di cui non mi ero accorto. Possiamo ignorarlo per ora. Ma spessore e deviazione standard sono output.
Se dovessi usare i dati che abbiamo già elaborato, ecco i nostri risultati. Abbiamo lo spessore medio dei wafer e la variazione della deviazione standard su tutti i wafer. Ora, questi sono solo i punti dati medi di quel set di dati. Ciò che effettivamente catturiamo sono circa 1400 punti dati per wafer. È un bel po'. Posso mostrare qui che abbiamo una tabella molto ampia di tutti i punti dati.
Ho impostato questa configurazione in questo modo: abbiamo i nostri sei fattori di controllo, poi il nostro spessore effettivo, il punto dati del wafer come asse X e Y lungo i wafer, poi l'output medio e infine la deviazione standard lungo quei wafer. Da lì, quello che di solito mi piace fare è considerarlo come un PGA roll. Pratico, grafico, analitico.
Per prima cosa, esamineremo in modo pratico tutti i set di dati. Se dovessi mostrarvi un grafico a curve di livello che mostra l'aspetto del nostro profilo superficiale, come mostrato nella diapositiva precedente, ognuno di questi punti dati è una misurazione delle coordinate XY che utilizziamo per misurare lo spessore. Ora, elaboriamo una notevole quantità di dati sull'intero wafer, ma sappiamo che attorno ad alcuni punti di bordo ci sono aree non critiche. Non ci sono componenti critici che elimineremmo da questo wafer. Possiamo eliminare questi punti dati.
Ho esaminato attentamente i dati, escludendo e nascondendo alcuni di questi punti dati non critici. Un modo semplice per farlo è cliccare su questo piccolo grafico di intestazione quando vengono forniti i dati per la prima volta e ottenere una tabella riassuntiva di ciascuna colonna. Una cosa da fare è controllare e assicurarsi di avere tutti gli ID dei wafer. Qui puoi vedere se ci sono valori anomali immediati da trovare. Può aiutarti a chiarire la situazione se ci sono valori anomali o difetti noti che potresti vedere.
Da lì, passeremo alla parte grafica. Quello che farei è andare su "Grafico", "Generatore di Grafici". Per farlo, osserverei i profili di superficie sull'intero wafer. Abbiamo le coordinate XY, e poi osserverei lo spessore. Imposterei lo spessore come colore per ogni punto dati, e poi potrei trasformarlo in un contorno. Ora, questo sta attualmente esaminando ogni wafer che abbiamo. Inserisco l'ID del wafer nel wrap e questo mi darà tutti i wafer analizzati, da uno a 24. Posso vederli tutti categorizzati qui.
Come potete vedere da questo DOE, c'è un intervallo di spessori piuttosto ampio. Siamo passati da 2000 nanometri a 13.000 nanometri, a seconda di come sono stati impostati i fattori di controllo target. Ma ciò su cui ci stiamo concentrando davvero è determinare dove vediamo molta disuniformità. Qui vediamo che centralmente questo wafer ha uno spessore molto più elevato, mentre all'esterno sembra molto più basso. Probabilmente non ha un'uniformità molto buona.
Un altro modo per verificarlo è entrare, e credo sia in Analizza. Farò un grafico a diagramma individuale. Devo ricordare dove l'ho messo. Ecco qua. Generatore di carte di controllo. Con questo, possiamo quindi impostare lo spessore come Y e possiamo impostare gli ID dei wafer. Oh, scusate, non gli ID dei wafer. In realtà, sì, facciamolo e basta. Poi lo ridurrò, quindi arriverà a circa... Proviamo a 10.000 o credo 11.000. Zero. Ok, dovrò alzarlo un po'. Andiamo a circa 15.000. Perché credo che il nostro wafer più alto fosse intorno a 13.
Qui potete vedere, tra ciascuno dei wafer, come i dati sono suddivisi tra i wafer a ogni esecuzione, e potete vedere come sono i punti dati... Alcuni wafer hanno un'uniformità pessima, mentre altri sono leggermente migliori. In realtà, giusto per risparmiare tempo, ne tirerò fuori uno che avevamo già suddiviso tra ciascuno dei wafer. L'ho creato un po' di tempo fa, ma non appena inizia a caricarsi... Eccolo. Abbiamo anche il nostro grafico dati individuale. È stato suddiviso tra ciascuno dei wafer, e potete vedere la barra X, la media e i limiti di controllo superiore e inferiore per ciascuno.
Se prendessi questo e lo confrontassi con... Lasciami provare a farlo, in modo che si adatti bene allo schermo. Ma abbiamo questo, e poi aprirò anche il grafico di controllo. Ops, quello sbagliato. Se guardassimo alcuni di questi wafer dove vediamo questo wafer qui, sembra che questo abbia una pessima uniformità trasversale. Quello che posso fare su questo grafico è evidenziare questi punti dati. Facendo questo, posso poi vedere... Pensavo che sarebbe stato visualizzato qui.
Ma di solito, quando li evidenzi, vengono mostrati i punti dati presenti. Forse perché è ancora ingrandito, non si riesce a vederli. Ma ho l'elenco proprio qui. È il wafer 09-D3. Il wafer 09-D3 qui, potete vedere che ha uno spessore molto elevato al centro e non altrettanto elevato all'esterno. Un altro su cui avevamo dei punti dati strani era questo 11-D3. Avevamo un paio di dati alti qui che sembrano essere valori anomali. Non siamo sicuri al 100% del perché siano lì. Non facevano parte dei punti dati esclusi che ho eliminato.
Ma da quelli, credo che fosse 11-D3. Se dovessi dare un'occhiata... Scusate, il computer sta impazzendo un po'. Ingrandiamo un po'. Sembra che se si guarda 11-D3, avevamo alcuni punti dati qui dove c'erano dei piccoli punti alti che causavano problemi lungo la superficie del wafer. Altrimenti, sembrava abbastanza simile tra questa fascia media. Questo è un aspetto che possiamo approfondire per capire perché abbiamo questi strani punti dati. Possiamo aprire una causa principale.
Questo è un aspetto interessante della rappresentazione grafica di JMP. È possibile determinare un'analisi delle cause profonde, chiedendosi: "Qual è la causa?". C'è FM o qualche detrito sulla superficie quando abbiamo effettuato le misurazioni? O c'è qualcos'altro che interferisce con quei punti dati?".
Dopodiché, una volta ottenuta una buona analisi grafica, possiamo passare alla creazione di un modello di adattamento per capire quanto bene questi punti dati si adattino tra loro. Se si intende analizzare un modello di adattamento, si possono prendere i dati. Si ottiene lo spessore come output. Lo si inserisce nella variabile Y e poi nella deviazione standard. In questo modo, troveremo la capacità di creare una funzione per prendere i controlli e indirizzare determinati output. Questo è essenzialmente ciò che stiamo facendo con questo modello di adattamento.
Quindi, con questo, possiamo aprire un profiler, che è il modo in cui possiamo regolare diversi fattori di controllo e vedere quale sarebbe l'output previsto. Spessore e deviazione standard sono output. Quindi questi sono i nostri sei fattori di controllo. Li aggiungerò lì. In realtà, sto per... Ok, sì, va bene. Lo eseguiremo. Di solito lo eseguirò come quadrati di lease standard. I quadrati di lease standard sono efficaci nel fornire un modello di best-fit per tutti i controlli per indirizzare gli output. Lo eseguiremo.
Ecco cosa è emerso. Come potete vedere qui, tutti i nostri dati hanno un impatto significativo sugli output. Era prevedibile. Abbiamo assegnato un intervallo di processo piuttosto ampio. In sostanza, non possiamo rimuovere alcun fattore per semplificare la nostra equazione. Dovremo semplicemente tenerli tutti inclusi.
Se andiamo al riepilogo dell'adattamento, vediamo che il nostro r² è 0,909. È un r² forte, e quindi abbiamo un errore quadratico medio di 502. Un'altra cosa che potremmo aggiungere sono le interazioni, dato che abbiamo creato il DOE anche con quello. In realtà ricomincerò e farò anche quello. Faremo un modello di adattamento, spessore, deviazione standard e poi i sei fattori di controllo. Aggiungiamoli lì. Oh, cavolo. L'ho fatto di nuovo. Li rimuoverò. Se li avessi selezionati, potrei quindi andare su macro ed eseguire il fattoriale al grado. Avevo un secondo grado qui, ed è così che inseriamo le nostre seconde interazioni.
Ora, se dovessi eseguirlo, aggiungeremmo spessore e deviazione standard ai nostri output. Lo lascerò andare. Bene, un elenco molto più lungo. Qui hai anche tutte le interazioni. Di nuovo, tutto è significativo, quindi non posso semplificare l'equazione. Ma se si fa un riepilogo dell'adattamento, ora abbiamo 0,97 o 0,965. Abbiamo uno stimatore molto più efficace per prevedere questi punti dati.
Posso premere questo piccolo pulsante rosso qui, e quello che possiamo fare è aggiungere il profiler. Farò il profilo lì. Poi lo farò apparire in basso. Possiamo chiudere alcuni di questi per semplificare. Ecco il riepilogo. Immagino che avrei dovuto parlarne prima. Abbiamo il nostro spessore di risposta per... O la nostra risposta per lo spessore, dove abbiamo 0,967r². La nostra capacità di prevedere lo spessore è piuttosto elevata. Poi abbiamo un r² per la nostra deviazione standard, che è anch'essa 0,965. Anche questa è una correlazione molto forte per prevederlo.
Credo che l'abbiamo inserito qui. Oh, da qualche parte dove inserirlo. Ok, non importa. Immagino che ora ci concentreremo sul profiler. Vediamo se riesco a far sì che questa finestra si adatti meglio. Per il profiler di previsione, quello che potete vedere qui è che abbiamo i nostri fattori di controllo sull'asse X e lo spessore e la deviazione standard, che sono i nostri output, sull'asse Y. Per questo, voglio poter impostare questo profiler per prevedere le diverse desiderabilità.
Quello che devi fare è entrare in ottimizzazione e desiderabilità. Arriviamo alle funzioni di desiderabilità. Questo aggiungerà una colonna di desiderabilità. Quando ne raggiungi una, significa che è la più desiderabile. C'è una correlazione molto forte che qualsiasi cosa tu abbia impostato per le tue X raggiungerà questi obiettivi. Ma prima di farlo, devi entrare e impostare le tue desiderabilità.
Per lo spessore, voglio raggiungere il target. In questo caso, imposti il centro come target. In questo caso, dirò 9.000. Diciamo 10 elevato a un numero intero, 10.000 come target, poi 12.000 è il massimo, 20.000. Quindi 8.000 è il minimo. Vogliamo rimanere all'interno di questo intervallo. Possiamo raggiungere un risultato accettabile. Per la deviazione standard, vogliamo solo minimizzare.
Dato che stiamo solo minimizzando, puntando a quel limite inferiore, manterrò invariati i numeri. Ora puoi vedere come è impostata la desiderabilità, con questi output: otterrai circa 8,3 per lo spessore. Puoi vedere che non raggiunge il valore desiderato per la desiderabilità. La deviazione standard è un po' alta. Ora che hai impostato la desiderabilità, puoi chiedere a JMP di massimizzarla.
Ciò che farà è prendere gli input che hai ricevuto e regolarli in modo da ottenere i risultati più desiderati. Per raggiungere quasi 10.000 nanometri per il nostro spessore e ridurre al minimo la deviazione standard, questi sono i fattori di controllo che dobbiamo impostare. Alcuni di questi saranno leggermente fuori, quindi posso semplicemente regolarli a 12.000. Poi li modificherò a circa 550. Sono numeri che possiamo inserire nella nostra apparecchiatura.
Per andare un po' oltre, una cosa che mi piace aggiungere è un po' di rumore alla prevedibilità. Si può aggiungere un simulatore e un po' di rumore casuale. La casualità all'interno di questo rumore viene ricavata dalla radice quadrata che potete vedere qui. Radice significa errori quadratici 303 per lo spessore e 21, circa 22 per la deviazione standard. Questo è ciò che viene utilizzato per creare quel rumore all'interno del sistema qui.
Per i nostri controlli, il volume. Il volume è in una situazione di produzione reale. Non avremo mai un volume costante perfettamente fisso da applicare. Ci sono alcuni fattori di rumore che lo regoleranno. Imposterò un po' di rumore casuale in quel fattore di input qui. Per il resto, i giri al minuto e i tempi sono abbastanza coerenti e fissi su quei punti dati, quindi posso mantenerli.
Quando si preme "Simula" qui, si crea essenzialmente una variabilità di capacità e si comprende in parte dove quel rumore e quella variabilità entreranno a far parte dell'equazione. Un aspetto divertente è che si può semplicemente giocare un po', regolare questi valori. Supponiamo di volerlo modificare a otto, vedere come influisce sugli output, vedere come influisce sulla nostra desiderabilità di raggiungerli. Poi si può anche... Riportiamolo a 10,5. Si può vedere come lo snap, la velocità molto elevata, abbia un impatto notevole sul nostro output. Se si modifica questo valore, si può vedere come in realtà si modifica anche lo spessore, e ora non siamo più entro la nostra desiderabilità.
Se provassi a dire che vuoi regolare per ottenere uno spessore diverso, potresti semplicemente reimpostare gli spessori. Diciamo che 9.000 nanometri sono più ottimali per noi. Possiamo modificarli, mantenendoli invariati. Quindi puoi semplicemente eseguire di nuovo l'ottimizzatore, massimizzarlo e regolerà le impostazioni. Raggiungeremo esattamente 9.000 nanometri di spessore.
Sì, credo che questo sia tutto ciò che volevo trattare in questa presentazione, ovvero l'esecuzione di un DOE per comprendere le finestre e gli intervalli di processo e il loro impatto sugli output. Da qui, possiamo usare questa desiderabilità per impostare un punto dati nominale. Quindi, sì, questo modello di adattamento è il modo in cui possiamo creare la nostra equazione. Man mano che continuiamo a costruire wafer da questo, possiamo aggiungere quei punti dati in questa tabella e aggiornare questo modello di adattamento, ottenendo così una correlazione sempre più forte per il nostro profiler di previsione. Con questo si conclude la mia presentazione.