關(guān)于gm/id設(shè)計方法的原理請看Stanford ee214b的課件。這兩篇對基本原理已經(jīng)講的很詳細(xì)耗啦,再次不過多闡述。本篇博客主要講如何使用gm/Id方法。
簡單概括gm/Id方法的本質(zhì)就是:
gm/Id對應(yīng)Vov耘沼,通過其數(shù)值大小的選取來達(dá)到增益與帶寬的折衷;
gm/Id方法是一種loop-up table方法朱盐;
gm/Id方法為短溝道器件電路設(shè)計提供了比公式手算更準(zhǔn)確的初值群嗤;
gm/Id方法為亞閾值設(shè)計提供了有力的工具。
原始數(shù)據(jù)準(zhǔn)備
首先要在cadence或者h(yuǎn)spice中通過大量參數(shù)掃描得到不同工作點下晶體管的小信號參數(shù)模型托享。此處以在cadence中得到tsmc180管子參數(shù)為例骚烧。
因為需要大量的仿真浸赫,并且導(dǎo)出的數(shù)據(jù)也很多,這里我們用ocean腳本來代替繁瑣的操作赃绊。
注意:對于不會使用ocean語言的既峡,可以通過這篇介紹 來快速的生成一個粗糙但不影響使用的ocean文件。
我的ocean代碼如下:
simulator( 'spectre )
design( "/home/liuheng/simulation/NMOS2V_DC/spectre/schematic/netlist/netlist")
resultsDir( "/home/liuheng/simulation/NMOS2V_DC/spectre/schematic" )
modelFile(
'("/eda/library/TSMC/tsmc18rfOA/tsmc18/../models/spectre/cr018gpii_v1d0.scs" "stat_noise")
碧查。运敢。。此處還有很多model忠售,能自動生成传惠,此處為了不影響博客的視覺效果刪除了一些語句。
)
analysis('dc ?saveOppoint t )
desVar( "L" 180n )
desVar( "VDS" 0.9 )
desVar( "VGS" 0.9 )
desVar( "VSB" 0 )
envOption(
'analysisOrder list("dc")
)
temp( 27 )
L_list = list(1.8e-07 2e-07 2.2e-07 2.4e-07 2.6e-07 2.8e-07 3e-07 3.2e-07 3.4e-07 3.6e-07 3.8e-07 4e-07 4.2e-07 4.4e-07 4.6e-07 4.8e-07 5e-07 5e-07 6e-07 7e-07 8e-07 9e-07 1e-06)
VGS_list = list(0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8)
VDS_list = list(0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8)
paramAnalysis("L" ?values L_list
paramAnalysis("VGS" ?values VGS_list
paramAnalysis("VDS" ?values VDS_list
)))
paramRun()
para = list("gm" "gmbs" "id" "gds" "vth" "cgg" "css" "cjs" "cdd" "cjd" "cgd" "cgs" "cdb" "cds")
foreach(xx para
model = pv("M0" xx ?result "dcOpInfo-info")
ocnPrint( ?output xx ?numberNotation 'scientific model )
)
數(shù)據(jù)處理
注意到我掃DC參數(shù)時也掃了VDS稻扬,導(dǎo)致得到的數(shù)據(jù)是3維的卦方,不是很方便使用。
其實VDS變化帶來的效應(yīng)就是溝道長度調(diào)制效應(yīng)泰佳,在模型方程中的體現(xiàn)就是 ?, 在小信號模型中的表現(xiàn)就是 ?盼砍,其實我們大概推導(dǎo)以下公式就會發(fā)現(xiàn):
因為 ? 的數(shù)量級為 ?, 所以 ? 這一項可以忽略,只需要取
[V{DS} = \frac{V{DD}}{2}]
這樣并不會帶來很大的影響逝她。
需要得到的參數(shù)
transconductance efficiency ?
normalized current ?
channel length modulation factor ?
transit frequency ?
intrinsic gain ?
圖中可以清楚的看出:
gm/Id 與 Vov的對應(yīng)關(guān)系浇坐;
通過取gm/Id的值來得到帶寬與增益的折衷;
Id/(W/L)是歸一化的數(shù)據(jù)黔宛。
到目前為止就的到了我們設(shè)計電路所需要的數(shù)據(jù)近刘,供以后查表使用。
注意:我們掃描VGS的變化是均勻的臀晃,但其實得到的gm/Id的值并不是在0-25之間均勻分布觉渴,所以我又對數(shù)據(jù)做了插值處理(但因為對這部分算法不是很熟悉,導(dǎo)致數(shù)據(jù)在兩端外推時有不收斂的情況积仗,從上面的圖中就可以看出來曲線兩頭的數(shù)據(jù)應(yīng)該是不太準(zhǔn)確的疆拘。)
另外,在MATLAB中有一個built-in的函數(shù)是find(), 通過這個函數(shù)可以直接查找到曲線上對應(yīng)點的準(zhǔn)確值寂曹,這樣會比從圖中讀曲線的值準(zhǔn)確的多哎迄。
我的MATLAB代碼 在此以供參考交流。(代碼風(fēng)格不是很好請見諒隆圆,希望能幫助到有需要的人)
設(shè)計實例
具體電路設(shè)計中的使用請看下面的設(shè)計實例(更新中)
Jespersgmid方法提出者Jespers出的書以及論文.
Current Mirror OpAmp這是一篇設(shè)計電流鏡運放的報告漱挚,我用tsmc180的庫基本復(fù)制出了報告中的結(jié)果。
TIA這是博主自己高等模集跨阻放大器的設(shè)計報告渺氧,如對文中分析有不同意見的歡迎與博主討論旨涝。
Fully Differential Folded Cascode OpAmp這是一篇全差分折疊共源共柵運放的設(shè)計報告,還未驗證侣背。
Three-stage OpAmpMiller OpAmp這是兩篇運放的設(shè)計報告白华。
Report from EE214這是伯克利ee214課件中的兩個全差分設(shè)計報告慨默,其中第二個設(shè)計實例提供了使用優(yōu)化算法尋找最佳電路參數(shù)的思路,值得借鑒弧腥。