Le aziende spesso si affidano a software obsoleti per il controllo statistico di processo (SPC) per monitorare i processi di produzione. Numerosi altri programmi SPC sono utilizzati nel settore, ma le aziende spesso si avvalgono di programmi obsoleti che rendono difficile l'analisi e la presentazione dei dati per gli utenti.
Questo poster presenta un metodo per creare grafici SPC per presentare i dati sullo spessore dei film nei forni comunemente utilizzati per la produzione di grandi lotti di wafer nell'industria dei semiconduttori. Questi forni per grandi lotti presentano una moltitudine di fattori che possono influenzare i risultati dello spessore. L'utilizzo di queste informazioni in JMP Graph Builder offre numerosi vantaggi, tra cui:
Poiché JMP è in grado di visualizzare facilmente le informazioni e ha un'elevata interattività per identificare i problemi, aiuta gli ingegneri a prendere decisioni con maggiore sicurezza.
Ciao. Mi chiamo Cody Sandquist e sono un Process Engineer presso NXP ad Austin, in Texas. Ho iniziato a usare JMP Scripting qualche anno fa, ed è stata una sfida. L'ho trovato davvero utile nel mio lavoro quotidiano. Quello che ho qui oggi è... Ho creato un'interfaccia usando JMP per SPC, o controllo statistico di processo.
Chiunque lavori nel settore manifatturiero, indipendentemente dal tipo di processo, conoscerà sicuramente l'SPC. Ho utilizzato diversi sistemi SPC nel corso della mia carriera. Alcuni sono migliori di altri, ma tutti hanno... Sono tutti carenti in qualche modo, oppure mancano dell'interattività o della capacità di scorrere rapidamente le informazioni che JMP offre.
Quello che vi propongo oggi è un modo per creare grafici SPC e JMP per consentire decisioni ingegneristiche più rapide e la condivisione di tali informazioni. Uno dei problemi che abbiamo con alcuni programmi SPC in circolazione è che se prendiamo quello che usiamo e non lo usiamo per valutare NXP qui, ci ritroviamo con un sistema SPC piuttosto vecchio. Io li ho al lavoro.
Solo una breve nota su questi: utilizziamo questi forni, grandi forni verticali, che possono contenere fino a 150 wafer di produzione, un dettaglio importante, ovvero 6 lotti. Ci sono 25 wafer per lotto e ci sono più zone nel forno, e utilizziamo monitor di prova per wafer in diverse zone per tenere traccia dello spessore del film non solo di un lotto in questo forno, ma di ogni singola zona.
Il programma SPC che sto utilizzando, innanzitutto, visualizza una fornace alla volta, mentre è preferibile visualizzare tutte le fornaci sullo stesso grafico, in modo da poter vedere se una si distingue, e non mostra gli spessori delle singole zone. Mostra la media di tutte le zone. Se si riscontra un problema specifico in una zona, è davvero difficile individuarlo se ci si attiene semplicemente a questo programma SPC.
Oltre a questo, è davvero difficile analizzare alcuni degli altri fattori comuni che causano problemi. Questo può includere il numero di lotti di produzione presenti in un batch. Le diverse dimensioni del carico, se si hanno 25 wafer invece di 150, possono dare risultati di spessore diversi. L'apparecchiatura metrologica che misura lo spessore potrebbe aver avuto una qualificazione errata, e non è raro vedere apparecchiature metrologiche difettose. A volte è difficile visualizzare queste informazioni se ci atteniamo al sistema SPC.
Utilizzando JMP Scripting come soluzione, ho creato una dashboard personalizzata in cui visualizzare tutte le fornaci in un unico grafico. Posso visualizzare i dati in base alla posizione della fornace, quindi in alto e in basso, e vedere se si verifica qualcosa in quella specifica posizione della fornace.
Di nuovo, l'altra cosa a cui ho accennato è che per molti fattori comuni, posso vedere se sta succedendo qualcos'altro. Magari è una misurazione di metrologia. Magari è la dimensione del carico. Posso anche aggiungere in questa tabella altre informazioni, come quelle del fornitore di wafer, e vedere se abbiamo un nuovo fornitore di wafer e se sta succedendo qualcosa che causa variazioni di spessore. Queste sono le funzionalità di cui parlo che rendono JMP un po' più facile da usare, offrendo un po' più di capacità rispetto ad alcuni dei comuni programmi SPC disponibili.
Con questa configurazione, mi piace arrivare rapidamente alla ricetta desiderata. Se non avete familiarità con le ricette, abbiamo molti tipi diversi di processi con diversi obiettivi di spessore. Voglio identificare, voglio arrivare rapidamente alla ricetta desiderata. Quindi ho creato una finestra pop-up in cui digito semplicemente il nome e clicco su "OK".
Quando lo faccio, prende quel nome e lo abbina a un file per quel processo. Filtra fino al limite di spessore e al target per quel nome di ricetta di processo. Ho un file di spessore grezzo. I dati del nostro sistema SPC, conterranno i dati di spessore per più ricette. Quindi riempi di nuovo, filtra fino alla ricetta desiderata e il tutto verrà tracciato in Graph Builder.
Graph Builder, di cui sono un fan perché è molto interattivo. Noterete la giustapposizione di entrambi i grafici: qui ho una sola fornace, e qui sotto ho più fornaci e posso visualizzare i dati in tutte le diverse zone. In realtà, ho impostato questo strumento per eseguire calcoli in cui non voglio solo lo spessore medio, ma anche la deviazione standard e l'intervallo per ogni singola zona. Quindi posso personalizzarlo anche in questo modo.
Quindi, se voglio filtrare in base ad alcuni di quei fattori comuni, come l'attrezzatura metrologica o la dimensione del carico, posso filtrare rapidamente in base a questi. Posso filtrare per singolo forno. Sì, il vantaggio, ovviamente, è una maggiore personalizzazione, una maggiore flessibilità nella creazione di grafici SPC, e si possono analizzare rapidamente i diversi fattori che causano variazioni e poi catturare lo schermo, inviarlo al personale e iniziare a identificare soluzioni, oppure se una zona è fuori controllo e devo apportare qualche tipo di modifica, posso farlo.
L'unico vero svantaggio è che devo estrarre manualmente i dati di spessore e salvarli come file CSV o di testo. Idealmente, potrei connettermi direttamente al nostro database qui in NXP, ma non ho i privilegi per farlo. Quindi non è colpa di JMP, ma non ho la possibilità di farlo nella mia azienda.
Entrando un po' più nel dettaglio dello script, so che non è entusiasmante analizzare uno script lungo e ogni singolo punto, ma lo farò in modo molto semplice e mi concentrerò sui punti chiave e su come funziona. Come ho già detto, ho un file di spessore grezzo che devo estrarre, quindi tutti i dati di spessore da più ricette di processo sono lì. Avrò anche un altro file che salvo con i limiti e gli obiettivi SPC e uso la funzione modale in JMP per visualizzare una finestra pop-up. Questa è una finestra pop-up. Digito il nome della ricetta desiderata e questo filtra le informazioni nel file di spessore grezzo e per il file e i limiti.
Da questo, salverà i limiti e il target come variabili, e queste variabili verranno poi utilizzate per creare quelle linee, quei target e quei limiti, e anche l'incremento e la dimensione in Graph Builder. Dimostrano semplicemente la flessibilità dello scripting in JMP: non tutte le righe dei file di dati che abbiamo sono equivalenti. Ogni singolo batch varierà. A volte i nostri monitor wafer di prova avranno due wafer e verranno eseguiti nella zona superiore e inferiore. A volte ci saranno tre wafer. A volte ci saranno cinque wafer. Quindi una riga avrà due colonne compilate, un'altra riga ne avrà tre, un'altra riga cinque, e cambia ogni volta.
Con una serie di istruzioni if, ancora una volta, non entrerò nei dettagli, ma con una serie di istruzioni if, posso identificare, in base alle colonne compilate, a quale zona fa riferimento ciascuna di quelle singole celle e quindi assegnarle la posizione corretta in modo che non ci siano errori o confusione, e che non venga inserita nella zona sbagliata quando la visualizzo in Graph Builder.
Per riprendere un breve punto sulla chiusura dello script in Graph Builder, queste variabili vengono inserite in Graph Builder per creare le linee, e posso personalizzare Graph Builder per visualizzare le informazioni come desidero. Un rapido esempio di risoluzione dei problemi che ho avuto al lavoro è che sull'SPC, il nostro grafico SPC principale, avevamo un forno per una delle ricette di processo che non funzionava correttamente per deviazione standard. Ricordate, il nostro sistema SPC non mostra alcun dettaglio.
Utilizzando il mio script JMP, sono riuscito a suddividere le informazioni per tutte le diverse zone e nella zona inferiore è stato rilevato qualcosa di bimodale. Quindi due di qualcosa che sta accadendo proprio qui. Poi sono riuscito a filtrare questo singolo forno per mostrarlo solo in base ad alcuni fattori comuni. In questo caso, la dimensione del carico. Un carico di sei lotti, di nuovo, è un lotto completo, il che significa che il forno è completamente pieno con 150 wafer di produzione. Quindi siamo riusciti a circoscrivere esattamente il problema.
Il problema si verificava proprio nella parte inferiore del forno, con lotti di produzione pieni, e l'intervallo aumentava vertiginosamente. Poi sono riuscito a combinare questo dato con le coordinate della nostra metrologia per creare mappe dei wafer e persino a individuare quale singolo... quale parte del wafer, quale sezione del forno stava causando problemi.
Condividendo queste informazioni con i nostri tecnici specializzati, interverremo sapendo esattamente dove si è verificato il problema nella caldaia, sostituiremo i componenti e ripristineremo la caldaia in buone condizioni e stabili. Questo è solo un rapido esempio, e grazie per il tempo che ci avete dedicato. Spero che abbiate tratto spunto da questa esperienza e ci vediamo alla conferenza.