“GaAs邏輯電路仿真不收斂怎么辦?”
使用GaAs工藝設(shè)計(jì)過(guò)邏輯電路的人大概率都遇到過(guò)各種各樣奇奇怪怪的收斂性問(wèn)題,比如一個(gè)+5V供電的電路竟然出現(xiàn)了幾十上百伏的節(jié)點(diǎn)電壓;又比如一個(gè)反相器Transient仿真總是提示Timestep too small。
01
一些典型的不收斂示例
(1)DC仿真時(shí)出現(xiàn)明顯異常的電壓或者電流,作者之前在WIN的諸多工藝上都遇到過(guò)節(jié)點(diǎn)電壓超出電源電壓的情況,比如+5V供電,輸出電壓達(dá)到了幾十上百伏。
臨時(shí)又找不到合適的配圖了……
(2)Transient仿真時(shí)提示“Internal timestep too small”,如下圖所示:
02
不收斂原因分析
(1)最常見(jiàn)的原因還是在人,例如懸空的節(jié)點(diǎn)可能被仿真器自動(dòng)移除,或者你的電路根本沒(méi)有直流回路,DC仿真自然無(wú)法收斂:
再比如電壓源不能與理想電感并聯(lián):
還有一些不可能成立(無(wú)解)的電路:電壓源不能并聯(lián)、電流源不能串聯(lián)。
或者設(shè)計(jì)的參數(shù)不合理,工作電壓超出了模型的有效范圍。
(2)第二常見(jiàn)的原因在于模型,GaAs pHEMT工藝的PDK大多是代工廠與Keysight合作開(kāi)發(fā)的,至少是依賴了Keysight的技術(shù)支持,pHEMT器件模型大概率是ADS的EEHEMT模型,而模型參數(shù)又是針對(duì)RF電路優(yōu)化的,用來(lái)進(jìn)行S參數(shù)或者HB仿真的收斂性沒(méi)問(wèn)題,反而DC或Transient仿真時(shí)收斂性就表現(xiàn)很差。又比如說(shuō)一些晶體管模型針對(duì)放大器應(yīng)用做了優(yōu)化,在合理的偏置點(diǎn)下仿真精度較高,但在接近夾斷的甚至低于夾斷電壓的柵壓偏置下仿真精度較差。
(3)仿真器參數(shù)設(shè)置不合理,通常是仿真精度要求太高,誤差太大時(shí)就容易出現(xiàn)不收斂的情況。
前面所述的EEHEMT模型并不局限于哪一家代工廠,很多家工廠的PDK都有類似的問(wèn)題,尤其是在進(jìn)行Transient仿真時(shí),需要對(duì)電壓或者電流的時(shí)域波形進(jìn)行數(shù)值積分運(yùn)算,而數(shù)值積分極容易因誤差太大而導(dǎo)致不收斂。作為典型的GaAs代工廠代表,WIN給出的Transient收斂性改善建議是把積分算法由默認(rèn)的Trapezoidal(梯形法)改為Gear's(預(yù)測(cè)校正法),同時(shí)把電荷精度由默認(rèn)值1.0e-14改為1.0e-12。
ADS的help文檔中有一段話是這樣寫的:
Like SPICE, this simulator uses the trapezoidal integration method described by the following equation as the default method for calculating derivatives at each time step t in the simulation. 【公式1】 For most circuits, this method will succeed. For those that do not, the simulator also supports Gear's backward difference method: 【公式2】 In this equation, the index k is called the order of the integration. For most circuits, Gear's method is no more accurate than the default trapezoidal integration technique. However, if a circuit analysis fails to converge, Gear's method may succeed where trapezoidal integration fails. In particular, oscillator circuits and any circuit that is characterized by stiff state equations may benefit from Gear's method. For a discussion of Gear's method and stiff state equations, refer to Chua and Lin, Computer-Aided Analysis of Electronic Circuits: Algorithms and Computation Techniques, Prentice-Hall, 1975.
【公式1】
【公式2】
最后一段的大意是:對(duì)大多數(shù)電路而言,Gear's積分法并不比默認(rèn)的Trapezoidal 積分法精度更高,但是如果一個(gè)電路用Trapezoidal積分法仿真不收斂,那么改用Gear's積分法也許能收斂。特別地,對(duì)于振蕩電路以及類似具有剛態(tài)方程的電路時(shí)采用Gear's積分法可能會(huì)更有利。
然而上述設(shè)置僅僅是對(duì)Transient仿真的收斂性有一定改善,并不能保證仿真一定能收斂。
03
個(gè)人方法
對(duì)于一些簡(jiǎn)單的GaAs邏輯電路(例如基礎(chǔ)門電路,或者3-8譯碼器規(guī)模以下的組合邏輯),通過(guò)減小仿真步長(zhǎng)、更換積分方法、修改仿真精度等方法基本上都可以解決。但是功能稍微更復(fù)雜的觸發(fā)器、鎖存器等很大可能還是不能收斂,例如幅相控制多功能芯片里需要用到的串并轉(zhuǎn)換電路,其邏輯門的規(guī)??赡苓_(dá)到500左右的量級(jí),要想跑通Transient仿真是非常困難的。
根據(jù)作者的經(jīng)驗(yàn),Cadence的Transient仿真器性能比ADS好很多,同樣的電路用ADS仿真不收斂,改用Cadence就可能收斂;也可能是雖然用ADS仿真能收斂但是非常慢,而用Cadence仿真的速度就能快上幾十倍。奈何絕大部分GaAs工藝的PDK的仿真模型僅支持ADS,Cadence版的PDK通常只支持LVS/DRC而沒(méi)有電路仿真模型。
基于上述現(xiàn)實(shí)痛點(diǎn),作者只能另辟蹊徑。通過(guò)觀察,作者發(fā)現(xiàn),絕大部分仿真不收斂都發(fā)生在數(shù)據(jù)或始終跳變的時(shí)刻,這正是電路中的電壓或者電流波形急劇變化的時(shí)候,極可能進(jìn)入器件模型的不連續(xù)區(qū)間。是否可以自己建立一個(gè)簡(jiǎn)化的模型,僅模擬晶體管開(kāi)關(guān)的結(jié)果,而去不關(guān)心晶體管開(kāi)關(guān)切換這一瞬時(shí)的精確波形,從而改善仿真的收斂性?
答案是肯定的,我用Verilog-A描述了一個(gè)簡(jiǎn)單的pHEMT模型,只包含三個(gè)特性:導(dǎo)通閾值、柵極的寄生肖特基二極管、導(dǎo)通電阻。有了這三個(gè)基本的要素,就可以模擬晶體管的開(kāi)關(guān)特性和柵極漏電。而且為了確保電壓、電流變化的連續(xù)性,我只用最基本的連續(xù)函數(shù)去描述其IV曲線。
而且,由于上述晶體管模型過(guò)于簡(jiǎn)陋,它甚至完全不能很好地?cái)M合PDK模型的DCIV:
(上圖左側(cè)是自定義簡(jiǎn)化模型,右側(cè)是PDK模型)
(上側(cè)兩幅圖是自定義簡(jiǎn)化模型的DCIV曲線,下側(cè)兩幅圖是PDK模型的DCIV曲線)
但是,前面說(shuō)過(guò)了,我并不關(guān)心它自身有多精準(zhǔn),我更關(guān)心作為邏輯門時(shí)它能否較好地模擬其開(kāi)關(guān)跳變的結(jié)果。因此上述自定義晶體管模型的參數(shù)我并不是用原始PDK晶體管模型的DCIV曲線去擬合的,而是讓它在一個(gè)完整的門電路中、在一個(gè)特定的偏置條件下去擬合PDK模型結(jié)果,例如下面這個(gè)最基礎(chǔ)的非門(反相器):
上面是DC仿真結(jié)果,下面是Transient仿真結(jié)果。可以看到自定義模型能夠較為精確地模擬非門的輸入邏輯閾值、輸出電壓、柵極電流、漏極電流。
從Transient仿真結(jié)果可以清楚地看到自定義模型能夠很好的擬合PDK模型在非門中的瞬態(tài)波形,正如前文所述,波形跳變的邊沿被刻意平滑掉了,沒(méi)有顯著的尖峰,但是電壓電流平穩(wěn)后的波形都能完美重合。
基于類似的思想,我把電阻、電容、二極管、D-mode邏輯管和E-mode邏輯管的模型都做了簡(jiǎn)化并與原PDK模型進(jìn)行擬合。這樣,諸如串并轉(zhuǎn)換這類對(duì)于GaAs來(lái)說(shuō)算是較大規(guī)模的邏輯電路仿真也幾乎再也沒(méi)有遇到過(guò)不收斂的問(wèn)題。
所以總結(jié)一下,對(duì)于比較復(fù)雜的GaAs邏輯電路,我的設(shè)計(jì)思路是:
使用PDK模型設(shè)計(jì)每個(gè)基本的邏輯門,確保每個(gè)基本的邏輯門在所有Corner、-55℃~+125℃溫度下都能夠正常工作,這種規(guī)模的邏輯電路基本上不會(huì)有太大的收斂性問(wèn)題;
開(kāi)始由基礎(chǔ)的邏輯門構(gòu)建更復(fù)雜的邏輯單元,比如鎖存器、觸發(fā)器,只要沒(méi)有收斂性問(wèn)題就繼續(xù)使用PDK模型進(jìn)行設(shè)計(jì);
當(dāng)邏輯復(fù)雜度達(dá)到一定規(guī)模后開(kāi)始出現(xiàn)收斂性問(wèn)題(比如由觸發(fā)器構(gòu)建移位寄存器時(shí)大概率就不容易收斂了),這時(shí)候更換成自定義模型(只對(duì)TARGET Corner@25℃進(jìn)行參數(shù)擬合),并且對(duì)比更換前后的DC仿真狀態(tài)是否一致,主要就是看靜態(tài)電流和靜態(tài)電壓;
使用自定義的模型完成全部邏輯電路的時(shí)序功能驗(yàn)證,最后再更換為PDK模型檢驗(yàn)一下完整電路的DC靜態(tài)電壓和靜態(tài)電流是否吻合。
上述自定義模型僅在TARGET Corner@25℃進(jìn)行參數(shù)擬合,僅僅是為了驗(yàn)證整體邏輯功能的正確性,無(wú)法全面反映全部邏輯電路在任意Corner/溫度下的是否都能正常工作。當(dāng)然,硬要針對(duì)每一個(gè)Corner、每一個(gè)溫度極限都去進(jìn)行參數(shù)擬合,再分別驗(yàn)證整體邏輯功能此時(shí)是否正常也是可以的,但實(shí)在是太麻煩了。
基于以上設(shè)計(jì)思路,作者已在WIN的PD25XX、PE15XX工藝上完成過(guò)多款串并轉(zhuǎn)換與開(kāi)關(guān)驅(qū)動(dòng)電路的開(kāi)發(fā),經(jīng)實(shí)測(cè)三溫邏輯功能均正常,各項(xiàng)指標(biāo)符合預(yù)期。
下面給出一個(gè)串并轉(zhuǎn)換電路的仿真示例:
使用原始PDK模型仿真的工作電流隨溫度變化的曲線是:
而更換為自定義簡(jiǎn)化模型前后,在TARGET@25℃這一個(gè)點(diǎn)處,DC仿真得到的靜態(tài)電流對(duì)比為:
?WIN
?+5V電流:1.31mA
?-5V電流:10.2mA
?自定義簡(jiǎn)化模型
?+5V電流:1.31mA ?-5V電流:10.3mA
使用PDK模型Transient仿真無(wú)法收斂,使用自定義模型Transient仿真的+5V和-5V電源瞬態(tài)電流波形:
完整串并轉(zhuǎn)換邏輯電路整體的仿真波形:
最后,使用自定義Verilog-A模型的另一個(gè)好處是,Cadence環(huán)境下也能進(jìn)行設(shè)計(jì)和仿真了。
至于仿真速度上,同樣的Verilog-A自定義模型,同一臺(tái)電腦、同一個(gè)CentOS系統(tǒng)環(huán)境:在ADS下根據(jù)激勵(lì)條件不同,Transient仿真大概需要40min~80min不等;在Cadence下根據(jù)激勵(lì)條件不同,Transient仿真大概需要30s~60s不等。這兩者在速度上的天壤之別讀者自行體會(huì)吧!
審核編輯:劉清
-
邏輯電路
+關(guān)注
關(guān)注
13文章
494瀏覽量
42609 -
反相器
+關(guān)注
關(guān)注
6文章
311瀏覽量
43288 -
仿真器
+關(guān)注
關(guān)注
14文章
1017瀏覽量
83721 -
電源電壓
+關(guān)注
關(guān)注
2文章
989瀏覽量
23969 -
ADS仿真
+關(guān)注
關(guān)注
0文章
71瀏覽量
10434 -
GaAs
+關(guān)注
關(guān)注
2文章
510瀏覽量
22982
原文標(biāo)題:經(jīng)驗(yàn)分享——GaAs邏輯電路ADS仿真不收斂怎么辦?
文章出處:【微信號(hào):芯片設(shè)計(jì)之路,微信公眾號(hào):芯片設(shè)計(jì)之路】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論