<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

GaAs邏輯電路ADS仿真不收斂怎么辦?

芯片設計之路 ? 來源:芯片設計之路 ? 2024-05-06 09:09 ? 次閱讀

GaAs邏輯電路仿真不收斂怎么辦?”

使用GaAs工藝設計過邏輯電路的人大概率都遇到過各種各樣奇奇怪怪的收斂性問題,比如一個+5V供電的電路竟然出現了幾十上百伏的節點電壓;又比如一個反相器Transient仿真總是提示Timestep too small。

01

一些典型的不收斂示例

(1)DC仿真時出現明顯異常的電壓或者電流,作者之前在WIN的諸多工藝上都遇到過節點電壓超出電源電壓的情況,比如+5V供電,輸出電壓達到了幾十上百伏。

臨時又找不到合適的配圖了……

(2)Transient仿真時提示“Internal timestep too small”,如下圖所示:

d4e3861c-0aea-11ef-a297-92fbcf53809c.png

02

不收斂原因分析

(1)最常見的原因還是在人,例如懸空的節點可能被仿真器自動移除,或者你的電路根本沒有直流回路,DC仿真自然無法收斂:

d4fb3564-0aea-11ef-a297-92fbcf53809c.png

再比如電壓源不能與理想電感并聯:

d50c405c-0aea-11ef-a297-92fbcf53809c.png

還有一些不可能成立(無解)的電路:電壓源不能并聯、電流源不能串聯。

或者設計的參數不合理,工作電壓超出了模型的有效范圍。

(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。

d51d0220-0aea-11ef-a297-92fbcf53809c.png

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.

d5275be4-0aea-11ef-a297-92fbcf53809c.png

【公式1】

d53b78ea-0aea-11ef-a297-92fbcf53809c.png

【公式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:

d542a890-0aea-11ef-a297-92fbcf53809c.png

(上圖左側是自定義簡化模型,右側是PDK模型)

d56968ea-0aea-11ef-a297-92fbcf53809c.png

(上側兩幅圖是自定義簡化模型的DCIV曲線,下側兩幅圖是PDK模型的DCIV曲線)

但是,前面說過了,我并不關心它自身有多精準,我更關心作為邏輯門時它能否較好地模擬其開關跳變的結果。因此上述自定義晶體管模型的參數我并不是用原始PDK晶體管模型的DCIV曲線去擬合的,而是讓它在一個完整的門電路中、在一個特定的偏置條件下去擬合PDK模型結果,例如下面這個最基礎的非門(反相器):

d5740750-0aea-11ef-a297-92fbcf53809c.png

d57da878-0aea-11ef-a297-92fbcf53809c.png

上面是DC仿真結果,下面是Transient仿真結果??梢钥吹阶远x模型能夠較為精確地模擬非門的輸入邏輯閾值、輸出電壓、柵極電流、漏極電流。

d5be4ff4-0aea-11ef-a297-92fbcf53809c.png

d5c8da00-0aea-11ef-a297-92fbcf53809c.png

從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工藝上完成過多款串并轉換與開關驅動電路的開發,經實測三溫邏輯功能均正常,各項指標符合預期。

下面給出一個串并轉換電路的仿真示例:

d5d90e20-0aea-11ef-a297-92fbcf53809c.png

使用原始PDK模型仿真的工作電流隨溫度變化的曲線是:

d5e5636e-0aea-11ef-a297-92fbcf53809c.png

而更換為自定義簡化模型前后,在TARGET@25℃這一個點處,DC仿真得到的靜態電流對比為:

?WIN

?+5V電流:1.31mA

?-5V電流:10.2mA

?自定義簡化模型

?+5V電流:1.31mA ?-5V電流:10.3mA

使用PDK模型Transient仿真無法收斂,使用自定義模型Transient仿真的+5V和-5V電源瞬態電流波形:

d5e906f4-0aea-11ef-a297-92fbcf53809c.png

完整串并轉換邏輯電路整體的仿真波形:

d5f9d9c0-0aea-11ef-a297-92fbcf53809c.png

最后,使用自定義Verilog-A模型的另一個好處是,Cadence環境下也能進行設計和仿真了。

d604add2-0aea-11ef-a297-92fbcf53809c.png

至于仿真速度上,同樣的Verilog-A自定義模型,同一臺電腦、同一個CentOS系統環境:在ADS下根據激勵條件不同,Transient仿真大概需要40min~80min不等;在Cadence下根據激勵條件不同,Transient仿真大概需要30s~60s不等。這兩者在速度上的天壤之別讀者自行體會吧!



審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 反相器
    +關注

    關注

    6

    文章

    257

    瀏覽量

    42725
  • 仿真器
    +關注

    關注

    14

    文章

    989

    瀏覽量

    83024
  • 電源電壓
    +關注

    關注

    2

    文章

    899

    瀏覽量

    23616
  • ADS仿真
    +關注

    關注

    0

    文章

    70

    瀏覽量

    10270

原文標題:經驗分享——GaAs邏輯電路ADS仿真不收斂怎么辦?

文章出處:【微信號:芯片設計之路,微信公眾號:芯片設計之路】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    求大佬幫忙解答使用tl494設計的開關型電源設計輸出結果不收斂的問題

    開關型電源設計輸出結果不收斂電路是使用tl494設計的5v轉12v的boost電路時,已經根據boost電路Vo=Vin/1-D的原理設計了四腳輸入的死區時間,并設計了電壓采樣
    發表于 04-19 16:38

    時序邏輯電路的設計實驗

    時序邏輯電路的設計實驗1    進一步強化EDA仿真軟件的使用;2    掌握利用MSI
    發表于 03-19 15:10

    仿真提示運放不收斂怎么辦?

    仿真提示運放不收斂怎么辦?
    發表于 03-24 19:28

    MDK軟件仿真不怎么辦呢?圖片上這樣子的,求哪位大神...

    MDK軟件仿真不怎么辦呢?圖片上這樣子的,求哪位大神解圍啊
    發表于 01-23 23:56

    請問ada4938仿真不收斂是否是我的電路圖連接的問題

    電路圖連接的問題,是因為芯片手冊中正負反饋輸出并沒有連接,而我在仿真的時候連接至了輸出端,所導致的這樣的輸出結果?還是因為仿真不收斂而導致的結果?
    發表于 08-22 11:05

    multisim仿真錯誤不收斂

    multisim出現仿真錯誤,不收斂,使用收斂小助手后報告成功解決,但是關掉之后重新仿真還是不行。電路是席勒振蕩器,
    發表于 07-03 11:17

    為什么s參數不收斂?有哪些方式導入s參數使得其仿真能夠收斂?

    求助各位大神,我在用ADS momentum仿真版圖后,生成的s參數用cadence模擬庫里的nport model導入仿真不收斂,因此有以下兩個問題。一,s參數不收斂的辦法有沒有其他
    發表于 06-25 07:41

    時序邏輯電路

    數字邏輯電路邏輯功能和電路組成的特點可分為組合邏輯電路和時序邏輯電路兩大類。
    發表于 08-10 11:51 ?39次下載

    Multisim的時序邏輯電路設計仿真

    通過介紹Multisim軟件的功能和特點,結合格雷瑪計數器的設計實例,敘述了在Multisim軟件平臺進行時序邏輯電路的設計原理及構成方法,并利用軟件對設計進行仿真。
    發表于 02-10 16:43 ?133次下載
    Multisim的時序<b class='flag-5'>邏輯電路</b>設計<b class='flag-5'>仿真</b>

    使用Matlab實現組合邏輯電路的設計與仿真

    本文主要介紹利用Matlab 強大的圖形處理功能、符號運算功能以及數值計算功能,及Matlab 仿真工具Simulink 實現組合邏輯電路的調試、仿真。主要包括:用Matlab 編寫常用組合
    發表于 02-02 10:48 ?21次下載
    使用Matlab實現組合<b class='flag-5'>邏輯電路</b>的設計與<b class='flag-5'>仿真</b>

    組合邏輯電路和時序邏輯電路的區別和聯系

    數字電路根據邏輯功能的不同特點,可以分成兩大類,一類叫組合邏輯電路(簡稱組合電路),另一類叫做時序邏輯電路(簡稱時序
    的頭像 發表于 03-14 17:06 ?5209次閱讀
    組合<b class='flag-5'>邏輯電路</b>和時序<b class='flag-5'>邏輯電路</b>的區別和聯系

    Abaqus橡膠仿真不收斂問題的排查方法

    在進行有限元仿真計算時,常常會遇到計算不收斂的問題,而且導致求解不收斂的原因也是多種多樣的,處理起來也是相當的麻煩。
    的頭像 發表于 03-25 10:12 ?2366次閱讀

    MATLAB的數字邏輯電路Simulink仿真

    電子發燒友網站提供《MATLAB的數字邏輯電路Simulink仿真.pdf》資料免費下載
    發表于 11-17 15:39 ?3次下載
    MATLAB的數字<b class='flag-5'>邏輯電路</b>Simulink<b class='flag-5'>仿真</b>

    Simulink數字邏輯電路仿真

    電子發燒友網站提供《Simulink數字邏輯電路仿真.pdf》資料免費下載
    發表于 11-18 09:24 ?4次下載
    Simulink數字<b class='flag-5'>邏輯電路</b>的<b class='flag-5'>仿真</b>

    組合邏輯電路之與或邏輯

    邏輯電路由多個邏輯門組成且不含存儲電路,對于給定的輸入變量組合將產生確定的輸出,則這種邏輯電路稱為組合邏輯電路。
    的頭像 發表于 02-04 11:46 ?532次閱讀
    組合<b class='flag-5'>邏輯電路</b>之與或<b class='flag-5'>邏輯</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>