“GaAs邏輯電路仿真不收斂怎么辦?”
使用GaAs工藝設計過邏輯電路的人大概率都遇到過各種各樣奇奇怪怪的收斂性問題,比如一個+5V供電的電路竟然出現了幾十上百伏的節點電壓;又比如一個反相器Transient仿真總是提示Timestep too small。
01
一些典型的不收斂示例
(1)DC仿真時出現明顯異常的電壓或者電流,作者之前在WIN的諸多工藝上都遇到過節點電壓超出電源電壓的情況,比如+5V供電,輸出電壓達到了幾十上百伏。
臨時又找不到合適的配圖了……
(2)Transient仿真時提示“Internal timestep too small”,如下圖所示:
02
不收斂原因分析
(1)最常見的原因還是在人,例如懸空的節點可能被仿真器自動移除,或者你的電路根本沒有直流回路,DC仿真自然無法收斂:
再比如電壓源不能與理想電感并聯:
還有一些不可能成立(無解)的電路:電壓源不能并聯、電流源不能串聯。
或者設計的參數不合理,工作電壓超出了模型的有效范圍。
(2)第二常見的原因在于模型,GaAs pHEMT工藝的PDK大多是代工廠與Keysight合作開發的,至少是依賴了Keysight的技術支持,pHEMT器件模型大概率是ADS的EEHEMT模型,而模型參數又是針對RF電路優化的,用來進行S參數或者HB仿真的收斂性沒問題,反而DC或Transient仿真時收斂性就表現很差。又比如說一些晶體管模型針對放大器應用做了優化,在合理的偏置點下仿真精度較高,但在接近夾斷的甚至低于夾斷電壓的柵壓偏置下仿真精度較差。
(3)仿真器參數設置不合理,通常是仿真精度要求太高,誤差太大時就容易出現不收斂的情況。
前面所述的EEHEMT模型并不局限于哪一家代工廠,很多家工廠的PDK都有類似的問題,尤其是在進行Transient仿真時,需要對電壓或者電流的時域波形進行數值積分運算,而數值積分極容易因誤差太大而導致不收斂。作為典型的GaAs代工廠代表,WIN給出的Transient收斂性改善建議是把積分算法由默認的Trapezoidal(梯形法)改為Gear's(預測校正法),同時把電荷精度由默認值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】
最后一段的大意是:對大多數電路而言,Gear's積分法并不比默認的Trapezoidal 積分法精度更高,但是如果一個電路用Trapezoidal積分法仿真不收斂,那么改用Gear's積分法也許能收斂。特別地,對于振蕩電路以及類似具有剛態方程的電路時采用Gear's積分法可能會更有利。
然而上述設置僅僅是對Transient仿真的收斂性有一定改善,并不能保證仿真一定能收斂。
03
個人方法
對于一些簡單的GaAs邏輯電路(例如基礎門電路,或者3-8譯碼器規模以下的組合邏輯),通過減小仿真步長、更換積分方法、修改仿真精度等方法基本上都可以解決。但是功能稍微更復雜的觸發器、鎖存器等很大可能還是不能收斂,例如幅相控制多功能芯片里需要用到的串并轉換電路,其邏輯門的規模可能達到500左右的量級,要想跑通Transient仿真是非常困難的。
根據作者的經驗,Cadence的Transient仿真器性能比ADS好很多,同樣的電路用ADS仿真不收斂,改用Cadence就可能收斂;也可能是雖然用ADS仿真能收斂但是非常慢,而用Cadence仿真的速度就能快上幾十倍。奈何絕大部分GaAs工藝的PDK的仿真模型僅支持ADS,Cadence版的PDK通常只支持LVS/DRC而沒有電路仿真模型。
基于上述現實痛點,作者只能另辟蹊徑。通過觀察,作者發現,絕大部分仿真不收斂都發生在數據或始終跳變的時刻,這正是電路中的電壓或者電流波形急劇變化的時候,極可能進入器件模型的不連續區間。是否可以自己建立一個簡化的模型,僅模擬晶體管開關的結果,而去不關心晶體管開關切換這一瞬時的精確波形,從而改善仿真的收斂性?
答案是肯定的,我用Verilog-A描述了一個簡單的pHEMT模型,只包含三個特性:導通閾值、柵極的寄生肖特基二極管、導通電阻。有了這三個基本的要素,就可以模擬晶體管的開關特性和柵極漏電。而且為了確保電壓、電流變化的連續性,我只用最基本的連續函數去描述其IV曲線。
而且,由于上述晶體管模型過于簡陋,它甚至完全不能很好地擬合PDK模型的DCIV:
(上圖左側是自定義簡化模型,右側是PDK模型)
(上側兩幅圖是自定義簡化模型的DCIV曲線,下側兩幅圖是PDK模型的DCIV曲線)
但是,前面說過了,我并不關心它自身有多精準,我更關心作為邏輯門時它能否較好地模擬其開關跳變的結果。因此上述自定義晶體管模型的參數我并不是用原始PDK晶體管模型的DCIV曲線去擬合的,而是讓它在一個完整的門電路中、在一個特定的偏置條件下去擬合PDK模型結果,例如下面這個最基礎的非門(反相器):
上面是DC仿真結果,下面是Transient仿真結果。可以看到自定義模型能夠較為精確地模擬非門的輸入邏輯閾值、輸出電壓、柵極電流、漏極電流。
從Transient仿真結果可以清楚地看到自定義模型能夠很好的擬合PDK模型在非門中的瞬態波形,正如前文所述,波形跳變的邊沿被刻意平滑掉了,沒有顯著的尖峰,但是電壓電流平穩后的波形都能完美重合。
基于類似的思想,我把電阻、電容、二極管、D-mode邏輯管和E-mode邏輯管的模型都做了簡化并與原PDK模型進行擬合。這樣,諸如串并轉換這類對于GaAs來說算是較大規模的邏輯電路仿真也幾乎再也沒有遇到過不收斂的問題。
所以總結一下,對于比較復雜的GaAs邏輯電路,我的設計思路是:
使用PDK模型設計每個基本的邏輯門,確保每個基本的邏輯門在所有Corner、-55℃~+125℃溫度下都能夠正常工作,這種規模的邏輯電路基本上不會有太大的收斂性問題;
開始由基礎的邏輯門構建更復雜的邏輯單元,比如鎖存器、觸發器,只要沒有收斂性問題就繼續使用PDK模型進行設計;
當邏輯復雜度達到一定規模后開始出現收斂性問題(比如由觸發器構建移位寄存器時大概率就不容易收斂了),這時候更換成自定義模型(只對TARGET Corner@25℃進行參數擬合),并且對比更換前后的DC仿真狀態是否一致,主要就是看靜態電流和靜態電壓;
使用自定義的模型完成全部邏輯電路的時序功能驗證,最后再更換為PDK模型檢驗一下完整電路的DC靜態電壓和靜態電流是否吻合。
上述自定義模型僅在TARGET Corner@25℃進行參數擬合,僅僅是為了驗證整體邏輯功能的正確性,無法全面反映全部邏輯電路在任意Corner/溫度下的是否都能正常工作。當然,硬要針對每一個Corner、每一個溫度極限都去進行參數擬合,再分別驗證整體邏輯功能此時是否正常也是可以的,但實在是太麻煩了。
基于以上設計思路,作者已在WIN的PD25XX、PE15XX工藝上完成過多款串并轉換與開關驅動電路的開發,經實測三溫邏輯功能均正常,各項指標符合預期。
下面給出一個串并轉換電路的仿真示例:
使用原始PDK模型仿真的工作電流隨溫度變化的曲線是:
而更換為自定義簡化模型前后,在TARGET@25℃這一個點處,DC仿真得到的靜態電流對比為:
?WIN
?+5V電流:1.31mA
?-5V電流:10.2mA
?自定義簡化模型
?+5V電流:1.31mA ?-5V電流:10.3mA
使用PDK模型Transient仿真無法收斂,使用自定義模型Transient仿真的+5V和-5V電源瞬態電流波形:
完整串并轉換邏輯電路整體的仿真波形:
最后,使用自定義Verilog-A模型的另一個好處是,Cadence環境下也能進行設計和仿真了。
至于仿真速度上,同樣的Verilog-A自定義模型,同一臺電腦、同一個CentOS系統環境:在ADS下根據激勵條件不同,Transient仿真大概需要40min~80min不等;在Cadence下根據激勵條件不同,Transient仿真大概需要30s~60s不等。這兩者在速度上的天壤之別讀者自行體會吧!
審核編輯:劉清
-
邏輯電路
+關注
關注
13文章
494瀏覽量
42672 -
反相器
+關注
關注
6文章
311瀏覽量
43427 -
仿真器
+關注
關注
14文章
1019瀏覽量
83867 -
電源電壓
+關注
關注
2文章
991瀏覽量
24044 -
ADS仿真
+關注
關注
0文章
71瀏覽量
10470 -
GaAs
+關注
關注
2文章
510瀏覽量
23027
原文標題:經驗分享——GaAs邏輯電路ADS仿真不收斂怎么辦?
文章出處:【微信號:芯片設計之路,微信公眾號:芯片設計之路】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論