今天再來講一講模擬電路中的時域仿真和頻域仿真。主要想講一講各種仿真的特點、使用范圍、使用注意事項等等,而不是一個包含每個設(shè)置步驟的仿真教程。
在模擬集成電路設(shè)計中我們需要用到各種各樣的仿真類型。首先是基礎(chǔ)三大件:DC仿真、TRAN仿真、AC仿真。在剛開始學(xué)習模擬電路時,我們最早接觸到的仿真類型就是這三種。后來學(xué)習射頻電路,引入了S參數(shù)的概念,又多了一個SP仿真。SpectreRF還提供了在VCO設(shè)計中很好用的周期性穩(wěn)態(tài)分析(Periodic Steady State,PSS),以及同屬于PSS旗下的QPSS、PAC、PSP、PXF等等。在Keysight的ADS平臺下,還有諧波平衡分析(Harmonic Balance Analysis,HB),以及包絡(luò)分析(Envelope Analysis)。
Spectre中的仿真類型
這么多令人眼花繚亂的仿真類型,每一種都有一些獨特的假設(shè),適合處理某一類情況。電路設(shè)計者需要根據(jù)自己的電路類型挑選出一種最合適的仿真方法。如果使用了錯的仿真類型,不僅會降低效率,還有可能得到錯誤的結(jié)果。比如拿SP仿真去看放大器的線性度,很顯然不可能得到正確的結(jié)果。
如果對這些仿真類型大致分類,可分為時域仿真、頻域仿真。粗略來講,如果一種電路處理的信號平滑、接近正弦信號,則適合于頻域仿真,如LNA、PA、Mixer等;如果這種電路處理的信號有很多圖片,接近方波,則適合用時域的仿真方法,如ADC/DAC、DC-DC converter等等。在一篇論文中總結(jié)出了下面的圖。
不同電路適合的仿真類型
時域仿真
最主要的時域仿真是TRAN仿真。TRAN仿真直接模擬電路的工作過程,類似于暴力破解方法,可以用來仿所有的電路類型。但是,TRAN仿真可用于所有電路并不意味著我們就該都用TRAN仿真,就像屠龍刀什么都能干,并不意味著它是最合適的削蘋果工具。天下沒有免費的午餐,一種仿真方法,如果適用范圍越廣,那么針對某種特定的電路類型時效率越低。TRAN仿真也是這樣。例如,我們需要仿真一個放大器的小信號增益和帶寬,使用AC仿真,一次就能得到結(jié)果。如果使用TRAN仿真,則需要添加不同頻率的正弦波激勵,跑多次TRAN仿真,拿輸出時域波形和輸入時域波形做比較,求得此頻率點的增益,最終畫出整個放大器的增益,整個過程繁瑣且計算量大。因此,如果有其他適用的仿真類型,我們傾向于不使用TRAN仿真來設(shè)計電路和優(yōu)化參數(shù),這些過程需要大量的迭代,采用TRAN仿真會導(dǎo)致效率很低。只有在沒有其他更合適的仿真方法,或電路設(shè)計完成后的最終驗證,我們會使用TRAN仿真。
在電路設(shè)計完成后拿TRAN仿真做一次最終驗證很有必要。因為其他仿真類型會有一些假設(shè),有一定的風險在最后的電路中這些假設(shè)不成立了。我遇到過這樣一個例子,在ADS中設(shè)計一個差分壓控振蕩器,采用HB分析,電路工作的好好的,性能也不錯。一跑TRAN仿真,電路振在了兩倍頻附近,與HB仿真結(jié)果對不上。進一步分析,發(fā)現(xiàn)振蕩器的差分輸出端電壓波形幾乎相同,電路工作在共模狀態(tài)。當然這個問題很好解決,利用差分電路的虛地特性,在某個共模點引入損耗即可。但如果僅僅使用HB仿真,可能根本察覺不了這個問題。HB仿真中需要設(shè)置搜索頻率范圍,仿真器僅僅在搜索頻率范圍附近尋找某個振蕩解,很容易忽略掉共模振蕩。
TRAN仿真一個需要注意的地方是輸入信號的幅度。我遇到過另一個例子,振蕩器的脈沖敏感函數(shù)(Inpulse Sensitive Function,ISF)的仿真。大家可能知道,Hajimiri發(fā)展了一套線性時變理論來分析振蕩器的相位噪聲。這套理論非常好用,至少對寫論文來說非常好用,我見過很多論文從這個理論出發(fā),得到一些創(chuàng)新點來提高相噪性能。這個理論最核心的部分就是ISF函數(shù),即微小的注入電荷對振蕩器輸出相位的擾動。根據(jù)它的定義在時域設(shè)置仿真環(huán)境很容易,但是得到精確的結(jié)果非常難。如果注入電荷過大,影響到了振蕩器的狀態(tài),算出來的結(jié)果會有很大偏差;如果注入電荷過小,那么振蕩器的輸出相位改變非常小,小到我們需要把TRAN仿真的精度無限提高才能算得準。當時我拿這個理論去仿一個幾GHz的振蕩器,仿真精度要設(shè)到fs以下才能得到較光滑的曲線。這個仿真對輸入幅度的敏感程度使得TRAN仿真在這里變得不實用了。因此有人專門研究了一套使用PSS和PXF仿真ISF函數(shù)的方法。有需求的同學(xué)可以進一步了解。
TRAN仿真另外一點需要注意的地方是仿真步長的設(shè)定。現(xiàn)在的仿真器一般都能夠根據(jù)信號變化的速度自適應(yīng)的設(shè)定仿真步長,仿真時不需要額外設(shè)置。有兩類情況是例外,第一類是振蕩器的仿真。對于振蕩器,步長需要小于周期的百分之一,即每個周期內(nèi)至少有一百個點,否則振蕩器可能會不起振。第二類是高動態(tài)范圍的情況。在仿真器的設(shè)置選項中,有一個相對誤差(reltol)的設(shè)定,這個設(shè)定與動態(tài)范圍有關(guān),對應(yīng)關(guān)系如下表。假如我們仿真一個12bit的ADC,其動態(tài)范圍有74dB,我們可以把reltol設(shè)為1e-4,留6dB的裕度。在仿真移相器、相位插值器的香味變化時,將reltol設(shè)為1e-4可以得到更平滑更準確的相位過渡。
reltol與動態(tài)范圍的關(guān)系
頻域仿真
AC仿真、SP仿真、HB仿真和PSS仿真都屬于頻域仿真。
AC仿真和SP仿真都是頻域仿真中的小信號仿真。所謂小信號,指的是仿真器在仿真開始時會先對電路在直流工作點上進行線性化,然后才開始求解。因此,這兩種仿真得到的增益都與輸入幅度無關(guān),我們不能指望通過它們來得到電路的線性度。AC仿真和SP仿真的原理基本相同,對于相同的端口設(shè)置,他們的計算結(jié)果應(yīng)該是完全一樣的。但是,SP仿真有更強大的預(yù)設(shè)函數(shù),如Gmax、Gumx、NFmin、Gmin等等。例如在設(shè)計LNA時,可以先拿單個晶體管來仿一次SP仿真,畫出SP仿真預(yù)設(shè)的這些值,能夠讓我們快速了解到這只晶體管需要什么負載阻抗和源阻抗、能達到什么樣的最優(yōu)增益和噪聲系數(shù),即指明設(shè)計方向又給出了理論極限,對提高優(yōu)化效率幫助極大。
SP仿真有豐富的預(yù)設(shè)函數(shù)
有時候我們需要仿真一個電路的輸入電容或電阻有多大,SP仿真和AC仿真都能做到,但SP仿真更方便。
HB仿真和PSS仿真都是頻域的大信號仿真。功能似乎較為重疊,都可以仿真PA的飽和輸出功率、線性度、效率等,都可以仿真VCO的振蕩頻率和相位噪聲,都可以仿真多個頻點的混頻。據(jù)我觀察,在cadence的spectre平臺下,大家更習慣于使用PSS仿真,而在keysight的ADS平臺下,大家更習慣使用HB分析。當初我在設(shè)計毫米波功率放大器時,全部都在ADS平臺下用HB仿真完成。ADS提供了非常多的設(shè)計實例,寫了很漂亮的公式,我只需要把例子中的器件替換成我自己的器件,即可完成load pull分析、輸入功率掃描等等,省時省力。
Cadence的PSS仿真與PXF或PAC等聯(lián)合起來有一些很強大,且除了TRAN之外不太有替代的應(yīng)用。比如我們之前提到的ISF函數(shù)的仿真。我最近還遇到了另一個例子,在時鐘分布網(wǎng)絡(luò)上,有時候我們需要了解電源噪聲會給時鐘帶來多少jitter。大家最典型的仿真方法是在時鐘上加入一個單頻正弦波,然后把輸出時鐘的眼圖打印出來,看帶來了多大的jitter。這種方法一次只能看一個頻點,而且仿真時間非常長。如果用PSS+PXF可以很好的解決這個問題,PXF可以計算出電源噪聲到時鐘邊沿中點的轉(zhuǎn)換增益,然后除以此處邊沿的斜率,即可得出電源噪聲到j(luò)itter的轉(zhuǎn)換,一次可以計算整個頻段,使用起來方便多了。
文章來源于haikun01 ,作者賈海昆
-
模擬電路
+關(guān)注
關(guān)注
125文章
1558瀏覽量
102772
發(fā)布評論請先 登錄
相關(guān)推薦
評論