五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Slivaco TCAD 小白系列- 1.?從ATLAS開始

2021-11-30 11:59 作者:DanielH丹丹  | 我要投稿
參考資源:
第二三集、Silvaco TCAD ATLAS Tutorial by Engineering technology and society
積體電路工程_Silvaco (Atlas) YouTube
基本操作或語法
Ctrl+滾輪 可以放大字體大小
井字號(#)後面是註解內(nèi)容,須自己獨立一行

好啦,開始我們新的一課。首先打開Deckbuild:

Deckbuild for Slivao TCAD 2019

我們這回的重點會在如何使用Atlas模擬器進行模擬,我們會在左上角的窗口寫上代碼,而要使用Atlas模擬核心要在代碼的開頭寫上「go atlas」、結(jié)尾寫上「quit」,例如:

go atlas
........
quit

有時運算量過大,我們可以調(diào)整模擬時使用的CPU數(shù),改成寫:
「go atlas simflags=”-P 2"」,預(yù)設(shè)是P 1。代表預(yù)設(shè)使用一個CPU。

以下是一個模擬元件運作的典型過程:

Screenshot from https://youtu.be/JwHRpbW61GQ?t=3116

主要是建立元件結(jié)構(gòu)→選取物理模型→選取解他的方式→設(shè)定初始條件與解之→分析結(jié)果 共五大步驟。每一個步驟都是一個”statement”,statement可以分成command跟parameter兩部分,前者是我接下來的行為大概要幹嘛、後者是確切要幹嘛、或者說此行為的細節(jié)。

例如:「開火 火侯=小火、時間=10分鐘」之類的,開火就是command,火侯=小火、時間=10分鐘就是parameter。

要把每個可能發(fā)生的行為確切分類到上述的五個步驟裡實屬不易,所以這五分法也只是大概。在學(xué)習(xí)到更後面的內(nèi)容時很可能會面臨不知道這個statement要放在哪個類別,例如要把「走出或走入廚房」歸納到煮菜的任何一個步驟都不太對,但他確實就是一個statement;反之在上述流程中列出的statement也不見得一定會用到。另外,敘述一般都是一個字的單詞,遇到兩個以上組成的單詞往往會用句點連在一起,例如e.field、j.electron

最後,為管理代碼方便,建議打開DeckBuild的行數(shù)顯示:View>Show Line Number。在2014版沒這功能。

以下先做一個概略性的簡單介紹。

註記:由於每個部份內(nèi)容深淺不一,很容易讀著讀著讀到走神,極度建議打開雙頁面,一個頁面是本回的內(nèi)容、另一個頁面是下一回的程式碼範例,透過比較左右頁面、檢視每行程式碼大概的意義,不然光看解說學(xué)習(xí)效果極差。

一、Structure Specification

建立結(jié)構(gòu)的過程與主要編碼會透過Deck Build程式執(zhí)行。

1-1. specifying the initial mesh:先給予初始預(yù)設(shè)的mesh大小,數(shù)字可以比1大或小。

語法:MESH space.mult=數(shù)字

Mesh翻成中文是網(wǎng)目,可以理解成一個最小積木的大小。要堆砌出一個元件,我們可以用不同大小的積木來堆砌(就像曲線可以想成是直線連成的、面積可以用長方形逼近等等),定義Mesh的大小、位置則可以決定元件的形狀。

在打Code時,通常建議預(yù)先繪製好元件構(gòu)造圖,才方便寫下元件的座標為何

Screenshot From https://www.youtube.com/watch?v=o9S7XiU80p4

為作區(qū)別,主類別我們會用全型大寫做標記,實際coding時打小寫也可以。
在成功運行過某個結(jié)構(gòu)後,如果有存成.str檔(後面會說如何存),則可以寫「MESH init infile=檔名.str」或「MESH inf=檔名.str」直接讀取之前成功跑過的結(jié)構(gòu),不用重打結(jié)構(gòu)。

(小抱怨,要把這種活打成文字實在很麻煩,慎重考慮之後變成影片形式的教學(xué),這樣不用碼字也賞心悅目。不過也要看各位看官的回應(yīng)決定啦~)

1–2. 定義x與y格線的位置:

語法:
x.mesh loc=線的x座標 spac=間格大小
y.mesh loc=線的x座標 spac=間格大小

如無特別說明,大小的單位都是um。
其語法的邏輯是,我把元件切成無數(shù)個小長方形,然後為每條線的x,y座標作定義,例如:

Example of division of a device

所以預(yù)先畫出元件長相是重要的。

2. 定義區(qū)域的材料:

格線可以畫出區(qū)域,而我們要給予區(qū)域的材料參數(shù)。最多可以有15000個區(qū)域。

語法:REGION number=第N號區(qū)域 區(qū)域參數(shù) material=材料名稱
Example code

對於區(qū)域定義的邏輯是層層推疊的。舉例來說,假設(shè)我要畫一個結(jié)構(gòu)如下:

some crossing pattern

那麼我會先聲明REGION num=1 material=silicon (黃色區(qū)域)
那麼畫布就會是整片黃。接著再定義一個白色躺下的矩形,例如:
REGION num=2 material=SiO2 x.min=2 x.max=8 y.min=4 y.max=6
接著是一個白色直立的矩形,便可以得到上面十字。

反之如果我先定義兩個矩形才寫下REGION num=3 material=silicon (黃色區(qū)域),則會讓整片都只有黃色。
或許有人好奇,可否跳過1–2直接定義區(qū)域呢?當然可以,但極度不建議,這對元件解析度重要性很高。主要是在一些接面等特殊地方我們會需要比較細緻的網(wǎng)格、其餘塊材處的網(wǎng)格不用那麼細小。而網(wǎng)格網(wǎng)定義需要靠1–2定義,這對電腦計算量影響很大。

3. 定義電極位置:

標示電極的位置,最多可以有50個電極。
其邏輯是可以選定一個區(qū)域或範圍作為電極,例如未指定時,我可以說REGION=X 讓第X號區(qū)域作為電極;或者標上X區(qū)域的某點就可以讓該區(qū)域都作為電極。
或者也可以自定義電極大小,X區(qū)域可能有200平方單位、但我只取某20平方單位當電極也可以。

語法:ELECTRODE name=電極名稱 位置參數(shù)
Example code

如果沒有寫出y座標,則會假定電極限遍布整個y方向。
我們也可以利用right, left, top, bottom來直接定義電極位置,或一端起點配合長度如例2。但良心建議,乖乖匡列邊界才實在。同時定義電極的位置可以不用有材料!

4. 定義摻雜:

指定某區(qū)域內(nèi)的摻雜參數(shù)

語法:DOPING 分布類型 摻雜類別 位置參數(shù)
Example code

似乎可以不用照順序。分布類型可以是uniform, gaussian, complementary error function。其中g(shù)aussian分布的摻雜需要給出peak發(fā)生的位置。至於junc跟rat是甚麼不太清楚。

註、3D的例子:

如果是想建立3D結(jié)構(gòu),則會寫成:

Screenshot From https://www.youtube.com/watch?v=o9S7XiU80p4

可以以圓柱座標表示:

Screenshot From https://www.youtube.com/watch?v=o9S7XiU80p4

一般來說Mesh切越小越精準,但是會花時間。所以在特定地方求精準就好,例如:
1. 具有高電場的D與Channel的接點處
2. MOSFET閘極下方的垂直方向電場
3. BJT中E、B端接面、發(fā)生再結(jié)合之處
4. 雪崩崩潰發(fā)生處
5. HBT、HEMT的異質(zhì)接面處
需要避免的點像不要利用鈍角三角形填充此區(qū)域(我們是用兩個三角形構(gòu)成矩形作為最小單位)、避免mesh密度驟變等等。

二、Model Specification

定義好結(jié)構(gòu)後,我們要進行調(diào)整元件參數(shù)。藉由以下步驟調(diào)整:

1. Contact:

系統(tǒng)預(yù)設(shè)的接面是歐姆接面。如果有給出金屬的功函數(shù)則會被當成Schottky接面,例如:

Screenshot my notes

2. Material

TCAD中會把材料分成絕緣體、半導(dǎo)體、導(dǎo)體。每個類別有不同參數(shù)可以調(diào)整,在半導(dǎo)體中可以調(diào)整的有:

Screenshot my notes

3. Models

物理模型的調(diào)整,主要包含五種類別的方向可以調(diào)整:

Carrier Statistics, Mobility, Recombination, Impact Ionization, Tunneling and Carrier Injection

舉例來說Carrier Statistics可以調(diào)整載子要滿足波茲曼還是費米狄拉克、或者說摻雜要不要全游離;Mobility可以選擇要套用哪個模型、Recombination可以選擇要套用SRH模型還是要多考慮表面再結(jié)合率等等,可參考ALTAS Manuel P.2–34~2–35。

語法:MODELS 使用的模型 print
Example code

此外還有些組合性模型例如只要輸入MODELS MOS print,就會自動引入CVT, SRH,和 FERMIDIRAC模型;輸入MODELS BIPOLAR print,就會自動引入CONMOB, FLDMOB, CONSRH, AUGER,和 BGN模型。
而語法最後的print則代表在模擬開始時餵入模型到架構(gòu)中。

4. Interface

可簡稱成interf。用於定義介面結(jié)構(gòu),包含表面電荷(surface charge)、表面再結(jié)合速度(Surface recombination velocity)、熱發(fā)射理論(thermal emission)等,例如:

Example code

三、Numerical Method?Section

依據(jù)使用模型組合的不同,TCAD最多需要解6個方程式。此時可以有三種方程式解法可以選:

GUMMEL(全部獨立解之)、BLOCK(部分聯(lián)立部分獨立)、NEWTON(全部聯(lián)立)

對應(yīng)不同問題,往往會有不同適合的方法解之例如:

基本的漂移與擴散問題→Method gummel newton
考慮晶格加熱的漂移與擴散問題→Method block newton
能量平衡的計算→Method block newton
考慮晶格加熱的能量平衡計算→Method gummel block newton

此外,也可以設(shè)定要同時解電子和電洞的模擬結(jié)果(method carriers=2)、
只解電洞/電子的模擬結(jié)果(METHOD carriers=1 hole/electron)、
只解電位能分佈的模擬結(jié)果(METHOD carriers=0)

Example code

四、Solution Specification

最後,我們要決定輸出的內(nèi)容和檔案類型,我們先看一下常見的檔案名稱。

檔名.in:DeckBuild界面的模擬輸入文件。
檔名.str:製程模擬或元件編輯器得到的元件結(jié)構(gòu)。
檔名.log:元件模擬時存儲模擬結(jié)果。
檔名.set:Tonyplot顯示的設(shè)置。
檔名.dat:提取得到的數(shù)據(jù)。

0. Output:

系統(tǒng)在計算完後會預(yù)設(shè)輸出一些結(jié)果,我們可以額外增加要輸出那些圖形等,例如:

Example code

1. Log和Save:

LOG跟SAVE都是保存模擬參數(shù)的指令,不過LOG是儲存模擬文件的電性(檔案為.log)、SAVE則是儲存結(jié)構(gòu)圖的語法(檔案為.str)。
LOG outfile 指令以下直到LOG off的內(nèi)容都會被記錄到名稱「某某.log」裡面、同時也可以把結(jié)果匯出成csv檔,這對於舊版TCAD特別友善因為舊版貌似無法在數(shù)據(jù)圖上匯出成csv檔。之所以會有這個需求,是因為LOG檔有時程式執(zhí)行完會不見。

語法:LOG outfile=名稱.log (master) csvfile=檔案.csv
語法:SAVE outfile=檔案名稱.str

通常想要結(jié)束記錄時會寫個”LOG off”,不過不寫或者直接接另一個「LOG outf=~」也是可以的。

此外,既然有outfile就有infile,其實infile我們也在前面提過,在上面的MESH處我們說過:「如果之後要載入之前跑的結(jié)果時,可以直接寫『MESH inf=檔名.str』」。就是一個infile的範例。

最後,還有另一個匯出資料的方法是在LOG程式碼的後面寫上例如:

Example code

2. Solve:

語法:SOLVE 內(nèi)容
大致格式範例:
SOLVE init
SOLVE 內(nèi)容
LOG outf=檔名.log
SOLVE 內(nèi)容
LOG off
SAVE outf=檔名.str

最簡單的講法,SOLVE指令就是給予條件讓系統(tǒng)去求解,語法很多種。

Example Requirement

總之,建完結(jié)構(gòu)後要清楚自己要解甚麼,具體的訴求可以是:

ID-VG圖,在VD=0.1V, VG=0~3V,VS=VB=0的條件下;
ID-VD圖,在VG=1,2,3V, VD=0~5V, VS=VB=0的條件下;
V_breakdown在VD=0、I=1~6 A的條件下。

我們也針對第一個例子來做實際程式碼的呈現(xiàn)。

第二個例子放在下一回說明。(挖坑

乍看我們漏寫”VS=VB=0"的部分,但其實”SOLVE init”的語法就是讓所有電極都歸零的意思,所以不必擔(dān)心。此外倒數(shù)第二行最後面的「空格+\」是代表code太長,我要寫到下一行繼續(xù)的寫法。

這裡打個岔,需特別注意Save是存截至此行前的元件最後狀態(tài),舉例來說,如果我在「Save abc.str」前面寫了「SOLVE Vgate=0 Vstep=0.05 Vfinal=3 name=gate」,則我會存的是VG=3 V的元件狀態(tài)而非VG=0或2.5V之類的。

五、Result Analysis

最後,跑完程式後如果有順利把結(jié)果存下來,則可以利用下面兩種語法進行資料提取,其中extract的語法較為困難,後者很常用也較簡單,就是打開畫好的電性圖或結(jié)構(gòu)而已。

1. Extract:參考DeckBuild User’s Manual 第5.8節(jié)完整內(nèi)容或參考第五回的內(nèi)容。

2. TonyPlot:展示模擬的結(jié)果。

語法:
TONYPLOT 名稱.log
TONYPLOT 名稱.str

好,恭喜你堅持到現(xiàn)在。對於初學(xué)者來說可能腦袋已經(jīng)斷路了,所以才在開頭建議開雙分頁學(xué)習(xí),從實務(wù)中成長最快最有效率! 希望大家有學(xué)到東西


Slivaco TCAD 小白系列- 1.?從ATLAS開始的評論 (共 條)

分享到微博請遵守國家法律
厦门市| 阜新市| 江孜县| 怀安县| 盘锦市| 五常市| 贵阳市| 抚顺县| 邮箱| 吴旗县| 隆昌县| 平顺县| 商南县| 阜康市| 金山区| 和林格尔县| 武穴市| 石渠县| 拉孜县| 抚顺县| 顺义区| 富川| 安陆市| 元谋县| 鹿邑县| 忻州市| 来凤县| 四子王旗| 太原市| 毕节市| 会宁县| 本溪| 钟山县| 福清市| 东乡族自治县| 上栗县| 万年县| 张家界市| 遂宁市| 澜沧| 宜州市|