3.3 軟體規劃與設計
3.3.2 可接受圖型檔運動之介面及程式設計
下圖為可接受 GDSII 規格之圖控運動介面。
圖 3-31 可接受 GDSII 規格運動之介面設計 其功能可分為以下幾個部份:
1. 檔案輸入區塊:介面開始執行以後,點擊右方的 圖示會彈出一個 路徑選擇視窗,在該視窗選擇欲執行的 GDS II 檔案,程式會自動將選擇的檔案
路徑顯示於 左側以供辨識。選擇檔案後,可以挑選欲繪製的結構(Structure) 和圖層(Layer)。
2. 參數輸入區塊:當選擇了欲執行的 GDS II 檔後,要進行一些參數的設 定,參數有兩部份:填滿密度以及繪圖速度。填滿間距意指當 GDS II 指定要繪 製一個區域 (Boundary)的時候,載具會把區域內部畫上交錯的直線來填滿,當 填滿間距愈大,則線條愈稀疏,使用者可以參考儎具上搭載的繪圖工具來選擇適
圖 3-34 訊息回饋區塊
LASTMOD {98-8-25 15:53:12}; # last modification time LASTACC {98-8-25 15:53:12}; # last access time
LIBNAME TEMPEGS.DB;
UNITS;
USERUNITS 0.01; PHYSUNITS 1e-08;
BGNSTR; # Begin of structure
CREATION {98-8-25 15:53:12}; # creation time
LASTMOD {98-8-25 15:53:12}; # last modification time STRNAME AAP;
X -756000.000; Y -198000.000;
X -920000.000; Y 452000.000;
ENDEL;
ENDSTR AAP;
BGNSTR; # Begin of structure
CREATION {98-8-25 15:53:12}; # creation time
LASTMOD {98-8-25 15:53:12}; # last modification time STRNAME LAYOUT;
SREF;
TEXT; LAYER 3; TEXTTYPE 0; PRESENTATION 0,2,0; PATHTYPE 1;
STRANS 0,0,0; MAG 1875;
XY 1; X -2256500.000; Y 1539500.000;
STRING "Boundary";
ENDEL;
ENDSTR LAYOUT;
ENDLIB;
[15]
其中我們會用到的幾組關鍵指令為BGLIB,ENDLIB;USERUNITS,PHYSUNITS;
BOUNDARY,PATH,ENDEL;XY。第一組指令宣告了整個程式的開始以及結束。第
二組告訴使用者該圖示的真實比例為多少。第三組宣告了繪圖的種類以及繪圖的 開始與結束,最後一組是告訴我們圖形的組成座標。
利用以上幾組關鍵指令,我們開始設計該介面的運作流程,下圖為運動控 制介面程式流程圖:
圖 3-35 GDSII 規格運動控制介面程式流程圖 由圖到圖顯示 LabVIEW 程式流程。
第一部分為初始化數值:
圖 3-36 GDSII 規格運動控制介面 LabVIEW 流程圖-初始化程式(1)
圖 3-37 GDSII 規格運動控制介面 LabVIEW 流程圖-初始化程式(2)
圖 3-38 GDSII 規格運動控制介面 LabVIEW 流程圖-初始化程式(3)
圖 3-39 GDSII 規格運動控制介面 LabVIEW 流程圖-歸原點(4)
圖 3-40 GDSII 規格運動控制介面 LabVIEW 流程圖-歸原點(5)
圖 3-41 GDSII 規格運動控制介面 LabVIEW 流程圖-歸原點(6)
圖 3-42 GDSII 規格運動控制介面 LabVIEW 流程圖-歸原點(7)
圖 3-43 GDSII 規格運動控制介面 LabVIEW 流程圖-歸原點(8)
圖 3-49 GDSII 規格運動控制介面 LabVIEW 流程圖-歸原點(9)
圖 3-50 GDSII 規格運動控制介面 LabVIEW 流程圖-歸原點(10) 接下來讀取檔案並擷取結構(Structure)和圖層(Layer)資料:
圖 3-51 GDSII 規格運動控制介面 LabVIEW 流程圖-讀取檔案(11)
圖 3-52 GDSII 規格運動控制介面 LabVIEW 流程圖-讀取結構(12)
圖 3-53 GDSII 規格運動控制介面 LabVIEW 流程圖-讀取圖層(13)
當檔案讀取完,按下「開始繪圖」按鈕,程式即會讀取使用者選擇要繪製的結構 (Structure)和圖層(Layer)。
圖 3-54 GDSII 規格運動控制介面 LabVIEW 流程圖-輸入結構和圖層(14) 接下來解說程式中央區塊的部份,首先程式會讀取ASCII File並取出該圖的設計 比例,顯示於介面上給使用者知曉。下頁圖為讀取USERUNITS,PHYSUNITS的 LabVIEW流程圖。
圖 3-55 GDSII規格運動控制介面LabVIEW流程圖-讀取圖形比例(15)
圖 3-56 GDSII 規格運動控制介面 LabVIEW 流程圖-讀取圖形比例(16) 接下來將會進入繪圖的部分,由於圖形種類有兩種:BOUNDARY 和 PATH,因 此設計兩個流程分別處理,在此先介紹 PATH 的部份,下圖為 PATH 處理流程圖:
圖 3-57 PATH 處理流程圖
要執行第一步驟,得先讀取該 PATH 之座標 Array,我把此功能做成一個小
圖示 ,利用 LabVIEW 來實現該程式的圖在下頁:
圖 3-58 GDSII 規格運動控制介面 LabVIEW 流程圖-讀取 XY 數值 (17)
圖 3-59 GDSII 規格運動控制介面 LabVIEW 流程圖-結束跳出(18)
圖 3-60 GDSII 規格運動控制介面 LabVIEW 流程圖-是否繪圖(19)
上圖的 XY 子程式部分,主要功能為讀取 XY 位址並給其他程式使用,利用 LabVIEW 來實現該程式的圖在下頁。
圖 3-61 GDSII 規格運動控制介面 LabVIEW 流程圖-初始化數值(20)
圖 3-62 GDSII 規格運動控制介面 LabVIEW 流程圖-讀取 X 數值(21)
圖 3-63 GDSII 規格運動控制介面 LabVIEW 流程圖-讀取 Y 數值(22) 接下來要來要把設計好的 PATH 子程式套入到主程式中運用,如下:
圖 3-64 GDSII 規格運動控制介面 LabVIEW 流程圖-輸出路徑座標(23)
圖 3-65 GDSII 規格運動控制介面 LabVIEW 流程圖-繪製預覽圖(24)
圖 3-66 GDSII 規格運動控制介面 LabVIEW 流程圖-初始化目前位置(25)
圖 3-67 GDSII 規格運動控制介面 LabVIEW 流程圖-讀取起點(26)
圖 3-68 GDSII 規格運動控制介面 LabVIEW 流程圖-開始移動(27)
圖 3-69 GDSII 規格運動控制介面 LabVIEW 流程圖-啟動繪圖工具(28) 上圖對座標做個判斷,False 代表在該軸方向有移動量,True 則沒有,再 對應情況使用直線插補或是單軸運動。
圖 3-70 GDSII 規格運動控制介面 LabVIEW 流程圖-繪製移動圖(29)
圖 3-71 GDSII 規格運動控制介面 LabVIEW 流程圖-轉折點(30)
圖 3-72 GDSII 規格運動控制介面 LabVIEW 流程圖-判斷終點(31)
圖 3-73 GDSII 規格運動控制介面 LabVIEW 流程圖-繪製移動圖(32)
圖 3-74 GDSII 規格運動控制介面 LabVIEW 流程圖-關閉繪圖工具(33)
以上完成了執行 PATH 運動及繪圖的部份,接下來要製作 BOUNDARY 功能的 程式,BOUNDARY 的流程圖如下:
圖 3-75 BOUNDARY 處理流程圖
利用 LabVIEW 來完成上述程式的方法置於下頁,首先我們製作一個圖示
,其功能為輸入 BOUNDARY 座標,並輸出填滿該 BOUNDARY 所該移動的座標 Array。
圖 3-76 GDSII 規格運動控制介面 LabVIEW 流程圖-讀取 XY 座標(34)
圖 3-77 GDSII 規格運動控制介面 LabVIEW 流程圖-計算填滿座標(35)
圖 3-78 GDSII 規格運動控制介面 LabVIEW 流程圖-結束子程式(36)
其中 之程式主要工作是計算要填滿該區域,所該輸出的座標為多少,
程式內容如下:
圖 3-79 GDSII 規格運動控制介面 LabVIEW 流程圖-取 Xs 初始值(37)
圖 3-80 GDSII 規格運動控制介面 LabVIEW 流程圖-計算 I 陣列(38)
圖 3-81 GDSII 規格運動控制介面 LabVIEW 流程圖-判斷結束(39)
圖 3-82 GDSII 規格運動控制介面 LabVIEW 流程圖-尋找交錯端點(40)
圖 3-83 GDSII 規格運動控制介面 LabVIEW 流程圖-尋找交錯端點(41)
圖 3-84 GDSII 規格運動控制介面 LabVIEW 流程圖-判斷結束(42)
圖 3-85 GDSII 規格運動控制介面 LabVIEW 流程圖-判斷結束(43)
圖 3-86 GDSII 規格運動控制介面 LabVIEW 流程圖-尋找交錯端點(44)
圖 3-87 GDSII 規格運動控制介面 LabVIEW 流程圖-尋找交錯端點(45)
圖 3-88 GDSII 規格運動控制介面 LabVIEW 流程圖-判斷結束(46)
圖 3-89 GDSII 規格運動控制介面 LabVIEW 流程圖-判斷結束(47)
圖 3-90 GDSII 規格運動控制介面 LabVIEW 流程圖-輸出填滿座標(48)
圖 3-91 GDSII 規格運動控制介面 LabVIEW 流程圖(49)
圖 3-92 GDSII 規格運動控制介面 LabVIEW 流程圖-設定下一個 Xs(50)
以上介紹完 的功能,接下來要利用輸出的填滿座標 Array 來讓介面繪 圖以及使機器移動。實現之 LabVIEW 程式圖如下:
圖 3-93 GDSII 規格運動控制介面 LabVIEW 流程圖-輸出填滿座標(51)
圖 3-94 GDSII 規格運動控制介面 LabVIEW 流程圖-繪製預覽圖(52)
圖 3-95 GDSII 規格運動控制介面 LabVIEW 流程圖-初始化陣列(53)
圖 3-96 GDSII 規格運動控制介面 LabVIEW 流程圖-初始化陣列(54)
圖 3-97 GDSII 規格運動控制介面 LabVIEW 流程圖-開始移動(55)
圖 3-98 GDSII 規格運動控制介面 LabVIEW 流程圖-繪製移動圖(56)
圖 3-99 GDSII 規格運動控制介面 LabVIEW 流程圖-判斷轉折點(57)
圖 3-100 GDSII 規格運動控制介面 LabVIEW 流程圖-繪製移動圖(58)
圖 3-101 GDSII 規格運動控制介面 LabVIEW 流程圖-初始化陣列(59)
圖 3-102 GDSII 規格運動控制介面 LabVIEW 流程圖-清除圖形(60)
圖 3-103 GDSII 規格運動控制介面 LabVIEW 流程圖-結束繪圖(61) 接下來要製作呼叫圖形的部份,包含 SREF、AREF 指令。SREF 是只要指定一 個結構(Structure)程式就會依照提供的座標,在該座標去繪製該 Structure 的 圖形,讓使用者可以去呼叫已經繪好的圖形來節省繪製時間,在程式資料上也可 以節省儲存空間。
圖 3-104 GDSII 規格運動控制介面 LabVIEW 流程圖-讀取相對座標 X(62)
圖 3-105 GDSII 規格運動控制介面 LabVIEW 流程圖-讀取相對座標 Y(63)
圖 3-106 GDSII 規格運動控制介面 LabVIEW 流程圖-讀取呼叫結構名(64)
圖 3-107 GDSII 規格運動控制介面 LabVIEW 流程圖-讀取旋轉角度(65)
圖 3-108 GDSII 規格運動控制介面 LabVIEW 流程圖-呼叫結構位置(66) AREF 類似於 SREF,不過他是呼叫結構(structure)並構成一個陣列。
圖 3-109 陣列示意圖
如上圖,若是呼叫的結構為一個填滿的方格,並構成 2x2 的矩陣,繪製出 來即會形成四個填滿的黑色方格。
程式如下:
圖 3-110 GDSII 規格運動控制介面 LabVIEW 流程圖-讀取陣列相對座標 X (67)
圖 3-111 GDSII 規格運動控制介面 LabVIEW 流程圖-讀取陣列相對座標 Y(68)
圖 3-112 GDSII 規格運動控制介面 LabVIEW 流程圖-讀取呼叫結構名 (69)
圖 3-113 GDSII 規格運動控制介面 LabVIEW 流程圖-讀取旋轉角度(70)
圖 3-114 GDSII 規格運動控制介面 LabVIEW 流程圖-讀取行、列(71)
圖 3-115 GDSII 規格運動控制介面 LabVIEW 流程圖-計算各行列相對座標(72)
圖 3-116 GDSII 規格運動控制介面 LabVIEW 流程圖-輸出呼叫位址(73)
圖 3-117 GDSII 規格運動控制介面 LabVIEW 流程圖-輸出各點角度(74) 由於我們用到了讀取位置暫存器,當一個結構結束的時候,程式必須判斷 是否為真正的結束議或只是完成一次呼叫的繪圖而已。判斷的程式如下:
圖 3-118 GDSII 規格運動控制介面 LabVIEW 流程圖-無呼叫則結束繪圖 (75)
圖 3-119 GDSII 規格運動控制介面 LabVIEW 流程圖-讀取呼叫位置(76)
圖 3-120 GDSII 規格運動控制介面 LabVIEW 流程圖-讀取相對座標、角度(77) 到此我們終於完成了接受 GDSII 規格運動之介面。下一章將利用此次設計 之介面進行實機驗證。
第四章
經過前面幾個章節的問題分析、系統設計後,在此章節將做驗證及討論。
本章前半部份將實際挑選一個 GDSII 檔案,讓機台依照圖形運動並繪圖,後半部 份將討論運動時所遇到的問題與改善方法。