模拟CMOS集成电路设计中的gm/id设计方法及用Cadence Virtuoso IC617仿真有关参数曲线
前言
本文為我自己的學習筆記,屬于Cadence Virtuoso系列的進階部分,采用的軟件版本是Cadence Virtuoso IC617。其他文章請點擊上方,看我制作的Cadence Virtuoso專欄內容。
在前面的文章中,記錄了使用工藝參數對運放進行設計的過程。一般是先仿真出當前工藝庫有關參數,再代入每一個晶體管中進行計算,數據較為復雜,同時計算量龐大。當一個設計中有較多晶體管時,修改其中一項參數就會導致有較多的數據需要被重新計算。同時,在短溝道器件中,MOS的經驗公式逐漸失效。所以,引入
 gm/id設計方法,能高效和準確地進行設計工作。
原理
放大器中的MOS工作狀態
假設器件為N-MOS,要讓其正常工作,以下電路拓撲是最簡單的。
 
在進一步了解其他原理之前,先定義過驅動電壓VOV如下。
VOV=VGS?VTN=2IDμnCox(WL)nV_{OV}=V_{GS}-V_{TN}=\sqrt{ {2I_D \over \mu_nC_{ox} ({W\over L})_n}} VOV?=VGS??VTN?=μn?Cox?(LW?)n?2ID???
在MOS用于放大器應用時,常使其工作于飽和區(下圖中右側區域),忽略溝道長度調制效應后,即電流Id僅與過驅動電壓有關。
 
跨導gm
對于應用于放大器中的MOS器件來說,輸入信號為電壓,輸出信號為電流,所以可以定義一個參量,表示這個器件的電壓轉換成電流的能力,即跨導gm,可以將其看成是品質因數。
用輸出電流除以輸入電壓,有以下式子。至于為啥系數是2,根據V-I特性公式就能得出了。
gm=2IDVOVg_m={2I_D \over V_{OV}} gm?=VOV?2ID??
由這個式子,可以得到下面的曲線。其中的斜率,就是gm。當過驅動電壓增加時,輸出電流也隨之增加。但實際上不成嚴格的一次線性關系,而帶有一定的二次系數。
 
gm/id
假如有兩只晶體管,他們的參數不一樣,我們繪制它們的Vov-ID曲線,得到下圖。觀察橫虛線,對于不同gm值的晶體管,要想達到相同的ID,就需要不同的過驅動電壓Vov。同樣的,觀察豎虛線,在相同的過驅動電壓下,有著不同的ID。也就是說,它們有著不同的“效率”。
 
現在,引入一個全新的參量:gm/id,它的值和過驅動電壓的倒數有關。
gmID=2VOV{g_m \over I_D} ={2 \over V_{OV}} ID?gm??=VOV?2?
我們可以從兩個角度去理解這個參數。
第一個,將其看成是,為了代替過驅動電壓Vov這個參數而引入的。
第二個,單位電流下的gm,即“gm效率”,在投入相同的ID時,當gm效率越高,所得到的gm越多。
那么,有了這個定義,我們應該怎么去合理選擇一個晶體管的gm/id值?從下面三個小標題中的內容得知,我們需要通過選擇一個晶體管的gm/id大小,來達到增益與帶寬的折中(可以看成帶寬增益積GBW是個定值),增益大了帶寬就小,帶寬大了增益就小,同時,也要兼顧噪聲的影響。
增益gian
在運放的設計中,增益是我們要考慮的重要參數之一。對于一個固定工藝和固定參數的晶體管來說,當gm/id的值越大時,其能提供的增益也就越大。同時,在相同的工藝下,柵長L越大,增益越大。
 
帶寬fT
帶寬fT也是重要參數之一。在相同的工藝下,當gm/id的值越小時,其帶寬越大。同時,在相同的工藝下,柵長L越小,帶寬越大。
 
噪聲Vn
此處只考慮晶體管自身最大的噪聲源熱噪聲,而對和頻率f有關的閃爍噪聲暫時不考慮。
 
針對熱噪聲,有以下式子。
 Vn2,in ̄=4kTγgmVn2,out ̄=4kTγgmro2\overline{V_n^2,in}={4kT\gamma \over g_m} \\\quad\\ \overline{V_n^2,out}=4kT\gamma g_m r_o^2 Vn2?,in?=gm?4kTγ?Vn2?,out?=4kTγgm?ro2?
- MOS作為放大器,噪聲在輸入端,設計時要使得gm稍大(gm/id稍大)。
- MOS作為電流鏡,噪聲在輸出端,設計時要使得gm稍小(gm/id稍小)。
電流密度
前面鋪墊了那么多,其實都是在講一些基本理論。我們在設計運放時,無非就是設計晶體管的尺寸,即W和L。那么,我們怎樣把gm/id的數值映射到尺寸上?
此處引入一個新的概念,電流密度,用id/W代表。意思是,在單位尺寸W下的電流。在不同的gm/id取值下,有著不同的電流密度id/W。同時,晶體管的柵長L也對其有一定的影響。
 
到了這一步,我們就可以完整設計出晶體管的尺寸了。在上圖中,我們選定了gm/id的數值,同時選定L的數值,在曲線中,我們就可以得出id/W的數值,對應的W數值也就出來了。
計算步驟
使用gm/id進行晶體管的設計,本質上是一種查表法(輪詢),計算量不大,確定gm/id數值后,只需要在對應的曲線或表格中查找所需要的數值即可。
開始時,需要從給定的目標參數帶寬增益積GBW和所需要的負載電容CL入手,得到gm的數值(一般為輸入管)。
建議:CL需要考慮電路本身的寄生參數,所以計算時取1.2倍CL,即設計CL為10pF,仿真時負載電容設計為10pF,但代入GBW公式中CL的值為12pF。
GBW=AVfT=gm2πCLGBW=A_Vf_T={ g_m \over 2 \pi C_L } GBW=AV?fT?=2πCL?gm??
當所在支路的電流id已知后,可以直接跳到3和4的步驟。
曲線仿真
在上面的理論部分,我們發現電流密度id/W的曲線比較重要,我們需要對晶體管進行仿真得到這個曲線,才能進行上述的設計。同時我們順便觀察一下增益。
N-MOS仿真
原理圖
和前面測試V-I特性曲線一致,同時,暫時不考慮體效應,B端直接接地。由于最后面得出的W會非常大,所以需要對晶體管的Multiplier或者Fingers進行設置,將大的晶體管分成小塊,將它們并聯或者串聯,減小寄生參數。這里設置Multiplier為變量。
 
仿真設置
打開ADE-L,進行仿真設置。
 
對變量賦初值。其中,W對仿真結果稍微有點影響,后期根據實際得出的W,微調后重新仿真。
 
設置為dc仿真,變量為vgs。
 
先仿真一下,生成各個部分的直流參數。
 
仿真參數設置
打開工具里的計算器。
 
選擇功能面板。
 
在查找里搜索,最終找到waveVsWave,用于繪制波形。
 
選擇上部的os按鈕。
 
點擊原理圖中的晶體管。
 
在小窗口中選擇gmoverid這一項。
 
將其復制進波形繪制窗口中的X軸位置。
 
同理,將“self_gain”添加進Y軸。此處不需要再次點擊晶體管了,只需要在小窗口中的list里直接選擇即可。
 
部分工藝庫沒有self_gain,就手動輸入gm/gds。代碼在下面
OS("/NM0","gm")/OS("/NM0","gds")點擊Apply。
 
將生成的公式送回到仿真環境中。
 
還需要id的數值,添加進去之后,手動輸入除以變量W,就是前面提到的電流密度。
OS("/NM0","id")/VAR("W")送回到仿真環境中。
 
至此,在仿真器中,就有了兩個輸出波形。
 
當然,我們也可以直接用代碼生成輸出參數。為什么這一段不放在前面寫,是為了讓我們熟練使用這個計算器,以后做其他仿真的時候,計算器這個工具是必須要會用的。
 
當熟練之后,可以直接在輸出設置里添加以下代碼。注意,此處晶體管名字是NM0,如果是其他名字,記得修改代碼中對應部分。
waveVsWave(?x OS("/NM0" "gmoverid") ?y OS("/NM0" "self_gain")) waveVsWave(?x OS("/NM0" "gmoverid") ?y (OS("/NM0" "id") / VAR("W")))另外,我們也可以掃描出過驅動電壓Vov和溝道長度調制系數 λ,可以直接使用以下代碼。在一些文獻中也提到用VGS參數,在最后一行也放出來了。
waveVsWave(?x OS("/NM0" "gmoverid") ?y (OS("/NM0" "vgs") - OS("/NM0" "vth"))) waveVsWave(?x OS("/NM0" "gmoverid") ?y (OS("/NM0" "gds") / OS("/NM0" "id"))) waveVsWave(?x OS("/NM0" "gmoverid") ?y OS("/NM0" "vgs"))參數掃描
設置參數掃描
 
將柵長L從200n掃描至2200n(其實可以不用那么多,1000n就可以了,一般的設計用不到那么大的L)。
 
仿真結果
點擊仿真后,生成兩組曲線。左邊是id/W,右邊是gain。
 
右鍵單擊id/W的Y軸,將其改成對數顯示。
 
出來的曲線就更直觀了。
 
在設計的時候,添加一個Marker,就能得出某個gm/id下對應的id/W和gain數值。
 
保存結果
我們可以選擇保存結果,下次就不用再進行仿真設置。
 
修改名字后,點擊OK確定。
 
下次打開仿真器時,直接加載即可。
 
選擇上次保存的仿真設置。
 
P-MOS仿真
原理圖
設計原理圖,對于P管,暫時不考慮體效應,B端直接接VDD。
 
仿真設置
和N管一樣,設置變量初值,設置dc仿真,最后設置輸出。
附上輸出參量的兩個代碼。注意,id/W的結果是負值,所以加了abs絕對值函數。
waveVsWave(?x OS("/PM0" "gmoverid") ?y OS("/PM0" "self_gain")) waveVsWave(?x OS("/PM0" "gmoverid") ?y abs(OS("/PM0" "id") / VAR("W")))還有三個參數,注意其中的abs絕對值函數
waveVsWave(?x OS("/PM0" "gmoverid") ?y (OS("/PM0" "vgs") - OS("/PM0" "vth"))) waveVsWave(?x OS("/PM0" "gmoverid") ?y abs((OS("/PM0" "gds") / OS("/PM0" "id")))) waveVsWave(?x OS("/PM0" "gmoverid") ?y OS("/PM0" "vgs"))設置好的仿真器,可以和自己的對照一下。
 
仿真結果
設置好參數掃描后,得到了仿真結果,再設置id/W曲線的Y軸為log坐標。
 
總結
以上是生活随笔為你收集整理的模拟CMOS集成电路设计中的gm/id设计方法及用Cadence Virtuoso IC617仿真有关参数曲线的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 深入理解CSS盒模型 - 程序猿的程 -
- 下一篇: sql date类型_共享单车数据分析的
