Oh! You closed up the window, so you cannot see raining

[統計] 統計學概要

本文是筆者基於工作上統計製程控制(Statistical Process Control, SPC) 的心得與學習筆記,可能有紕漏,僅供參考。 統計學(Statistics) 基本名詞 群體(population):研究對象的主體。 如上例的\(\red{\text{全國人民的政治傾向}}\)、\(\red{\text{此家工廠的產品品質}}\)。 樣本(sample):群體的一部分。 如上例的\(\red{\text{台灣部分的民眾}}\)、\(\red{\text{工廠部分的抽樣}}\)。 目的:了解美國總統大選誰會獲勝? 群體:美國有投票權的公民 此時不是美國公民的台灣民眾,就不會是這個題目的樣本。 參數(parameter):由群體資料所計算之群體表徵值。 統計量(statistic):由樣本資料所計算之樣本表徵值。 為何需要統計學? 統計學是一種工具,人們為了下決策所作的一系列蒐集資料、整理、分析、與解析,是目的導向的。 比方說,每次總統大選會花費大量人力,動員全國上下公教人員,花錢印選舉公報、印選票,選後還要花費大量的時間開票、驗票。假如我只是個學生想了解目前國家人民的政治傾向,不可能收集台灣上下每個人的答案,所以我們會進行抽樣。 比方說工廠出貨會抽樣調查產品有沒有損壞,不可能全部的產品都拿去做測試,因為成本太高。 藉由普查或抽樣的結果來描述全體的行為,作為決策的依據。 統計的目的:\(\red{\text{由樣本資料推論母體參數}}\)。 解決統計問題的五大步驟 問題定義 先決定你要討論的問題,跟此問題可能相關的對象為何?可以收集哪些資料? 定義問題的群體與樣本。 例如:我想了解 A 工廠「晶片良率」,我認為可能跟「晶片厚度」有關係。 群體:A 工廠生產的晶片良率 樣本:某段時間內 A 工廠某機台生產晶片的厚度 例如:我想了解 B 國小附幼「小朋友學習狀況」,我認為可能跟「A 考卷的成績」有關。 群體:B 國小附幼小朋友的學習狀況 樣本:某次活動後的一次學習單成績。 資料收集 要收集哪些資料?哪些資料有可能可以協助我解決我想了解的問題? 例如,收集晶片的氧化層厚度、爐管的溫度、機台的編號、機台的廠商 測量尺度 等比尺度(Ratio measurements):具有零值且資料間的距離是相等被定義的。 如晶片的氧化層厚度 等距尺度(Interval measurements):資料間的距離是相等被定義的,定零值並非絕對的無,而是自行定義的。 如爐管的溫度(攝氏) 順序尺度(Ordinal measurements):數據的意義是並非表現在值上而是在其順序上。 如機台的編號 名目尺度(Nominal measurements):測量值不具量的意義。 如機台的廠商 資料整理 很多時候我們光看數字,會對研究主體沒感覺,所以引入畫圖來協助我們判斷資料。 資料的整理分為兩個部分: 審查資料 篩選有用的資料,收集來的資料是不是與預想的一致,資料是否有錯誤、遺漏、矛盾或是其它可疑的地方?應立刻設法檢查並更正。如果資料由不同單位蒐集而來,可能需要經過正常化(normalization)加以換算統一。太過複雜的資料應依照研究目的加以整理,以求簡化,並藉以顯示研究對象全體的通則。 資料表現 資料經過整理分析得到一些統計結果,為了方便說明,我們常以圖表的方式陳示出來,以供參考使用。 散點圖(Scatter plot): 可以看相關係數 ...

<span title='2022-07-09 20:02:28 +0800 +0800'>July 9, 2022</span>&nbsp;·&nbsp;2 min&nbsp;·&nbsp;Rain Hu
Oh! You closed up the window, so you cannot see raining

[TCAD] 模擬收斂問題

TCAD 模擬收斂問題 收斂問題 Sentaurus Device 有非常多種可模擬大電場下之飽和遷移率的模型,而這主要是設定有效電場的模型。其中,最自然的選擇就是 Eparallel driving model。這種模型取總電場平行於電流方向上的分量。不過這通常會導致嚴重的收斂問題。主要是因為電場跟電流有著極為密切的關係,除此之外,以 MOSFET 通道為例,通常垂直與平行通道方向之電場數量級差很多,因為演算之數值誤差會「混合」這兩個分量,所以這種 Eparallel 模型會使得每個節點上的 driving force變化許多,進而改變電流方向,又接著改變電場分量,所以會造成極為不穩定的情況。 其中一個折衷的辦法,就是只考慮平行於 silicon-oxide 界面上的電場,可以使用 HighFieldSaturation(EparallelToInterface) 指令來啟動這模型。只要大部分的電流都平行於界面,那基本上這就是個很好的模型。然而,目前最新科技通常會使得 source/drain 的電流以「向外散開,向內吸入」的方式進入與離開。例如說目前的 ultrashalow source and drain extensions。電流散開之後,電流就不再平行於界面,而這模型可能會帶來將近 5-15 % 的誤差。因此,如果你知道電流的方向,那麼你也可以設定用來計算平行電場分量之方向向量,而不再只是單純地與最鄰近的界面平行的方向。例如說,如果你覺得電流主要是沿著 x 軸在流動,那麼可以在 Math section 設定 EparallelToInterface (Direction = (1 0 0))。 最常用的 driving force 是 quasi-Fermi potential 的梯度模型。通常這跟平行電場模型是一樣的,但它的演算法比較穩定。可以用 HighFieldSaturation(GradQuasiFermi) 選項來啟動它。不過,即便如此,還是可能會造成收斂問題。這是因為通常 quasi-Fermi potential 的梯度都非常的陡峭,變化得太過劇烈或是非常的不平滑,而這往往切得比較不好的網格所造成的。 但在有些時候,即便網格切得很好,還是沒辦法收斂。有時是因為低載子濃度的區域的濃度相對誤差都滿高的,而這會進一步導致 quasi-Fermi potential 的誤差變得滿大的。因為這些區域通常對總電流的貢獻並不是很顯著,所以算得太準反而會讓模擬跑得更慢。不過,你確實需要確認一下這些低密度是不是導致發散。 除此之外,也可藉由設定 RefDens_eGradQuasiFermi_EparallelToInterface 與 RefDens_hGradQuasiFermi_EparallelToInterface 來使用「內插 GradQuasiFermi 與 Eparallel」的 driving force 模型。該參數定義了 gradual transition 發生的局域載子濃度。例如說,如果設定為 1e12,那麼當載子濃度高於 1e12,就使用 GradQuasiFermi model,反之則使用 Eparallel model。通常 1e12 並不會影響到總電流,但仍能改善收斂問題。有時甚至需要用到 1e14 ~ 1e16 以獲得更好的收斂,但要留意不同設定所得到的電流是否一致,以確定 Eparallel driving force 帶來的誤差仍可接受。 ...

<span title='2022-05-25 22:52:15 +0800 +0800'>May 25, 2022</span>&nbsp;·&nbsp;2 min&nbsp;·&nbsp;Rain Hu
Oh! You closed up the window, so you cannot see raining

[TCAD] 工具語言

TCAD 常用的三種程式語言 工具語言 用於操作 Sentaurus 工具的指令,例如: snmesh sdevice 預處理語言 Sentaurus Workbench Preprocessing Language(SPP):在 SWB 執行指令檔之前,會先翻譯 SPP 語言。(類似於 C 的 macro) 例如: #define __x__ 1 // 將所有 __x__ 字串取代成字串 1 TCL 公用語言,通常用來處理字串與數據。 範例 SPP 語言:@...@、#開頭的敘述都是 SPP 語言 #if "@tunneling@ == "Hurkx" #define _B2BTunnelModel_ Band2Band(Model=Hurkx) #define _B2BTunnelMath_ NoSRHperPotential #elif "@tunneling@ == "E1" #define _B2BTunnelModel_ Band2Band(Model=E1) #define _B2BTunnelMath_ NoSRHperPotential #elif "@tunneling@ == "E1_5" #define _B2BTunnelModel_ Band2Band(Model=E1_5) #define _B2BTunnelMath_ NoSRHperPotential #elif "@tunneling@ == "E2" #define _B2BTunnelModel_ Band2Band(Model=E2) #define _B2BTunnelMath_ NoSRHperPotential #else #define _B2BTunnelModel_ #define _B2BTunnelMath_ #endif TCL 語言:set 與 puts 其中 @…@ 因為是 SPP 語言,故會先被前面定義好的 header 取代,之後才會執向 .cmd 檔。 set A [expr -@BF_Thick@-@AB_Thick@-@GR_Thick@-@CH_Thick@-@ML_Thick@] puts "DOE: Xmin [format %.2f $A]"

<span title='2022-03-26 21:46:26 +0800 +0800'>March 26, 2022</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;Rain Hu
Oh! You closed up the window, so you cannot see raining

[Device] Mismatch Introduction

Mismatch 的重要性 Mismatch 就是當元件的結構設計相同,且尺寸相等,發生性質差異的一種行為。 當尺寸漸縮,變異(viriability)的程度會愈來愈大。 變異(viriability)變大會影響到類比邏輯應用的表現。 Variability/Fluctuation 變異度/誤差定義 元件的單體量測值到整體的 Stardard Target 或 Median 的差距。 可分為系統誤差與隨機誤差。 Systematic variability 系統誤差 (Global) 外質特性(extrinsic) 可以透過製程改良或控制來改善 W2W: 裝置穩定度 equipment stability Wafer level: 裝置均勻度 equipment uniformity、黃光穩定度 Litho. stability Die level: 黃光均勻度 Litho. uniformity、溫度均勻度 temp. non-uniformity pattern density like poly gate density might impact temperature uniformity Layout-Dependent: 光學偏移效應 Optical proximity effect、機械應力 Mechanical stress Random variability 隨機誤差 (Local/Mismatch) 本質特性(intrinsic) 較難被改善 沒有空間相關性 尺寸漸縮,比例可能被放大 微擾動: 參雜 dopant, LER, … random dopant fluctuation(RDF): dopant diffuse randomly gate dieletric roughness line edge roughness(LER) grain irregularity 統計手法 常態分佈 大部分的元件特性都呈常態分布(normal distribution) 中央極限定理 Advanced Central Limit Therem: 相互獨立的隨機變數, 其均值以常態分佈為極限 Sum of normally distributed random variables: 常態分佈的線性組合依然是常態分布 可簡單透過 median 與 sigma 來描述一組數據, 並用來預測數據 常態分布的函數式為 \(f(x)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-u)^2}{2\sigma^2}}\) 分析手法 透過刪減 outlier 使 rawdata 盡量接近常態分布 (刪除 3倍 sigma 以外的 outlier,重複 6 次) 通常 Full mapping 量測(66pts) 會有 0~2 點的 outliers 數學公式: A = B + C 且 B 與 C 為不相依的變數時 \((\sigma_A)^2=(\sigma_B)^2+(\sigma_C)^2\) $$(\sigma_{total})^2=(\sigma_{global})^2+(\sigma_{local})^2$$ Total: \(\sigma(\text{Vt1,Vt2,…Vtn})\) in wafer Global: \((\sigma_{total})^2=(\sigma_{global})^2+(\sigma_{local})^2\) \(\text{Median(Vt1,Vt2,…Vtn)}\) \(\sigma(\text{Med1,Med2,…Medn})\) Local: \(\sigma(\text{Vt1,Vt2,…Vtn})\) in die local = \(\sqrt{\frac{\sum\sigma_i}{n}})\) mismatch = \(\sigma(\Delta\text{Vt1},\Delta\text{Vt2},…\Delta\text{Vtn})\) Mismatch量測 量測 Full mapping data 將同個 die 裡面的 device pair(the same W & L) 計算差值 \(\Delta\text{Vt}=Vt1-Vt2\) \(\Delta\text{Ion}=\frac{2\times(\text{Ion}_1-\text{Ion}_2)}{\text{Ion}_1+\text{Ion}_2}\) Normalization 同一組 device pair 內,去除 outlier,使數據接近常態分佈 因為 mismatch 受 sacle 影響,故須對 scale 做正常化 1/sqrt(WL),Standard variation of mismatch is proportional to inverse of square root of area. Draw \(\Delta\text{Vt}-\frac{1}{\sqrt{W/L}}\)圖 斜率即為 Mismatch

<span title='2022-03-05 21:40:03 +0800 +0800'>March 5, 2022</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;Rain Hu
Oh! You closed up the window, so you cannot see raining

[Device] Ring Oscillator 環形振盪器

前言 2022/3/3 更新 此篇為筆者以工作經驗為背景寫下的筆記,如有錯誤煩請指教。點此聯絡我。 Ring Oscillator 環形振盪器(RO) 簡介 在 IC 電路設計中,除了 metal routing 會造成訊號的延遲,邏輯閘從高電位轉換到低電位、或從低電位轉換到高電位(switch),也會造成相對應的 Gate Delay,然而 Gate Delay 非常小,很難以測量,故 RO 是一個便於測量 Gate Delay 的電路設計。 在 IC 電路設計中,除了考慮速度,還會考慮功耗,而邏輯閘開關所造成的動態功耗(dynamic power consumption)佔比非常大,故 Ring Oscillator 也可以用來計算閘開關的功耗。 1. Time Delay 為了方便測量 Time Delay,RO 是一種用奇數 n 個 inverter(NOT Gate) 串接成的電路。透過在輸入端振盪產生方波,經過奇數個 inverter 之後,在輸出端產生反向的方波訊號,其時間差為經過 n 個 inverter 的 time delay。利用 time delay 會透過串接 inverter 累加(或稱propagation)的性質,故可以算出單個閘極的 gate delay(\(T_p\), propagation time) \(t_{HtoL}\sim t_{LtoH}=t_p=\Delta T/2n\) [註] 圖為一個由3個反向器組成的環形振盪器,其輸出頻率為 \(\frac{1}{6}t_p\)(Gate Delay)。 由偶數個 inverter 組成的環形電路無法構成環形振盪器,因為其輸入與輸出相同。然而這種配置可以被用作記憶體的基本單元,它是建構靜態隨機存取記憶體 SRAM (static random access memory)的基本組成。 環形振盪器通常全部由 inverter 所組成,較能抵抗環境影響。事實上也可以用 non-inverter 與 inverter 混合組成,前提是 inverter 的總數要是奇數。其振蕩器的週期等於兩倍的閘延遲(Gate delay), 為了增加振盪頻率,通常有兩種方法 減少環形電路中的 inverter 數量。 提升電壓,但同時會有較大的電流與功耗。 2. Power consumption 分為 Dynamic Power Consumption 與 Static Power Consumption。 \(P_{total}=a\times f\times(\frac{1}{2}CV_{DD}^2+V_{DD}I_{SC})+V_{DD}I_{off}+V_{DD}I_{Diode}+V_{DD}I_{Gate}\) a 為 activity,每個 clock cycle 的平均開關切換數目。 故在電路設計上減少開關的次數也能有效降低功耗。 f 為頻率,代表一秒內可以完成幾次開關(switch)。 Dynamic Power(Switching Power) 為現今 CMOS 振盪器的主要功耗來源。 Dynamic Power 為 RO 在固定方波頻率為 \(f\) 時的平均功率(一組方波歷時為 \(1/f\))。 每一次開或關(switch)所耗的能為 \(\frac{1}{2}CV^2\) 推導: \(C=\frac{Q}{V}\) \(I=\frac{dQ}{dt}=C\frac{dV}{dt}\) \(W=IV=\int_{0}^{t}CV\frac{dV}{dt}=\frac{1}{2}CV^2\) 故功耗為\(P_{dynamic}=I_{active}V=CV^2\) 如何降低功耗? 降低 Activity Clock Gating: 避免不必要的 flip-flop 避免 transition downstream logic 加入 enable 來控制邏輯複雜度 Data Gating: 利用 gating off inputs 來避免不必要的 toggling Bus Encodings Freeze “Don’t cares” Remove Glitches 降低\(C_{Load}\) 降低\(f\) 降低\(V_{DD}\) 平行結構 可降低相同 Throughput 時的功耗 Trade off performance Short-Circuit current 當 NMOS 與 PMOS 同時在切換開關時發生(NMOS尚未完全關閉,但PMOS已經部分啟動或是兩者相反)。 Kept to < 10% of capacitor charging current by making edges fast Static Power 因為 subthreshold leakage,MOS並未完全關閉所造成的漏電流致使的功耗。 在小尺寸(<180nm)元件中,因為 short channel effect 的加劇,此功耗的比例會加劇,甚至達 10~40%。 Diode Leakage Drain 端與 Source 端的 Diode junction 產生的 junction leakage。 通常很小可忽略。 Gate Leakage 因為電子穿隧穿過閘極氧化層(gate oxide)造成的漏電,通常在極薄的閘極氧化層發生,可忽略。 Reference reference1_Eletrical Engineering and Computer Science by MIT ...

<span title='2022-02-21 01:29:24 +0800 +0800'>February 21, 2022</span>&nbsp;·&nbsp;2 min&nbsp;·&nbsp;Rain Hu