本論文設計的軟體為考慮軟體的擴充性,因此利用程式碼模組化的觀念來使軟 體有架構簡單化、模組化。所以使用架構(Framework)做局部自訂修改(Customize) 並與其他模組搭配應用或擴充架構。
物件導向語言所設計出來的程式架構稱為物件導向架構(Object-Oriented Framework)。架構具有類似抽象類別的性質,在設計物件導向架構時多半會利用 抽象類別的性質,先在抽象類別定義幾個方法的實作,至於欲更有彈性修改實作 的方法,則程式碼實作在子類別[15]。
軟體擴充性的目標 :
‧ 能更有彈性的自行修改或擴充
‧ 減少使用架構時須寫的程式
‧ 簡化介面讓使用者容易瞭解
‧ 製作文件讓使用者容易瞭解
5.2.1. 軟體的擴充性
本論文所設計的軟體具有 Framework 的特色,集束型製程設備與上層主機通訊 介面軟體(簡稱 GEM Interface)除了可被應用於集束型製程設備控制器外也可被 應用於其它設備控制器。圖 5-6 為 GEM Interface 的應用圖, GEM Interface 應用於其它設備控制器時只需要對軟體做局部修改即可,在章節 5.2.2 說明之。
圖 5-6 GEM Interface 的應用圖
5.2.2. 軟體的維護說明例(快速熱處理模組使用 GEM Interface)
集束型製程設備控制器與上層主機通訊介面軟體(簡稱 GEM Interface)應用於 其它設備控制器時,由於半導體設備的硬體架構相異,所以當本軟體應用於其它 半導體設備控制時只需修改局部實作層的程式碼與重新規劃本論文的章節 3.4 事件報告收集與章節 3.5 劇本的資料項目說明與設備變數清單後本軟體即可應 用。
下面小節將以快速熱處理模組控制器(RTPC)例,說明快速熱處理模組控制器如 何應用本論文所設計的軟體使其具有與上層主機通訊的功能。
5.2.2.1. 如何修改實作層的程式碼
我們以製程配方管理為例說明,由於 CTC 控制器的製程配方與 RTPC 的製程配 方格式不同,所以實作類別 Recipe_Impl 類別裏的程式碼必須修改。例如製程配 方的欄位長度不同、晶圓加熱方式不同,這些都是因為硬體變更所以需要修改軟 體。但是功能層類別完全不需要修改可以沿用。
GEM Interface
RTP控制器
GEM Interface GEM Interface
CMP控制器
CTC
圖 5-7 為 RTPC 製程配方管理實作類別圖,RTPC 與 CTC 在製程配方管理實作 類別裏,因製程配方格式不同而需要被修改的方法項目有 UploadRecipe()、
addNewRecipe()、ReplyCheckReport()3 個,其餘的方法不需修改。
Recipe_Impl 以程式設計者必須依照新的 CEID 編碼去修改 Event_LinkFrame 類別裏的 CEID 預設值即可。假設相同的 CEID 編號 140 號,RTPC 將 CEID 編號 140 號規劃成 " Received Wafer",表格 5-6 說明如何修改程式碼。
表格 5-6 如何修改程式裏的事件報告預設值
CTC 的事件報告預設值(CEID:140) RTPC 的事件報告預設值(CEID:140)
【
CEID[13][0]="140";
CEID[13][1]="Processing Started";
【
CEID[13][0]="140";
CEID[13][1]="Received Wafer";
CE 修改前的程式碼】
CEID[13][2]="Enable";
CEID[13][3]="RPTID 1";
CEID[13][4]="RPTID 16";
修改後的程式碼】
ID[13][2]="Enable";
CEID[13][3]="RPTID 1";
CEID[13][4]="RPTID 16";
當變數清單被重新規劃後會產生新的變數編號(SVID)與變數名稱,所以程式設 計
表格 5-7 如何修改程式裏的資料變數預設值預設值
變數預設值(SVID:117) 者必須依照新的 SVID 編碼去修改 Event_LinkFrame 類別裏的 SVID 預設值即 可。假設相同的 SVID 編號 117 號,RTPC 將 SVID 編號 117 號規劃成 "N2 flow ",表格 5-7 說明如何修改程式碼。
CTC 的資料變數預設值(SVID:117) RTPC 的資料
【修改前的程式碼】
SV[16][0]="117";
SV[16][1]="PM1ProcessTemp";
[16][2]="150"; [16][2]="150";;
5.2.2.3. 如何修改資料變數路徑
集束型製程設備與上層主機通訊介面軟體的程式類別 Event_LinkFrame 裏宣
(程 ,並將 SV、DV、EC 的值都塞入陣列裏。
類別 ClockUpdateTimer 以秒為單位對陣列(SV[0][2])塞入新的時間字串,所 以我們必須修改原路徑將系統時間指向新的陣列(SV[19][2])。
【修改前的程式碼】
public void run() {
String time = timeFmt.format(new Date()); //取得時間系統
t_LinkFrame.SV[0][2]=time.substring(3); //把時間塞入 SV[0][2]
的資料
public void run() {
String time = timeFmt.format(new Date());//取得時間系統
t_LinkFrame.SV[19][2]=time.substring(3); //把時間塞入 SV[19][2]
的資料 ……
Even try{
Thread.sleep(1000); ……. //每一秒更新 SV[0][2]內
【修改後的程式碼】
……
Even try{
Thread.sleep(1000); ……. //每一秒更新 SV[19][2]內
第6章 軟體驗證
本論文驗證的方法為在集束型製程設備控制器(CTC)裏加入本論文設計的通訊 介面軟體,另外使用一台電腦當做上層主機模擬器(HOST),用市購軟體(工研院 的 SECS Emulator v1.5)來模擬 GEM 的訊息來和 CTC 進行訊息驗證。通訊硬體是 透過乙太網路 TCP/IP 進行訊息交換,表格 6-1 說明軟體驗證硬體配備。
表格 6-1 系統測試環境說明表
CTC 控制器 HOST 模擬器 CPU P4-1.4G P4-1.8G
網路卡 10/100Mbps 10/100Mbps 記憶體 128M RAMbus 512M RAM
作業系統 Windows XP Professional Windows XP Professional 系統執行之
軟、硬體需求
軟體版本 本論文所設計的軟體 SECS Emulator v1.5 軟體開發環境 JBuilder 9 Personal C 語言