很多在校的同學在使用仿真軟件時對器件模型并沒有什么認識,覺得器件直接從器件庫中拉出來,畫出電路圖,就可以仿真了。
當然如果我們只是單純為了“EDA設計”課程寫份實驗報告而進行電路仿真,那么的確不需要過多了解模型,因為我們并不關心實際電路的技術指標,而只關注仿真的結果。但仿真真正的目的一定是為了指導硬件,為了能在生產前發現設計缺陷、調試其技術指標,以及獲得電壓和功耗數據,提高設計的安全邊界等,這些都要求電路仿真有著足夠的精度和準確度。而決定仿真精度和準確度的決定因素是各元器件模型的準確性和正確性,可以說元器件模型是原理圖仿真的根基。
因此,對于仿真軟件中自帶的器件庫,我們不僅要會調用,還應該了解它的模型,必要時進行修改和調整。
另外,在設計實際電路中,還常常會遇到軟件自帶的器件庫中沒有找到需要型號的器件,那就需要到其官網上尋找它的SPICE模型,或是考慮自己構建SPICE模型,當然元器件建模是件最為艱難復雜而又艱難的過程。不過我們可以慢慢來,不是馬上就想要自己構建一個復雜芯片的模型,而是從簡單的器件入手。比如我們先聊聊電阻吧~~~
定值電阻
PSpice中的定值電阻模型主要包括3種,分別是Analog庫中的R、BreakOut庫中的Rbreak和PSPICE_ELEM庫中的Resisitor。外觀上并沒有什么區別,一般我們都是選擇Analog庫中的R,用于簡單直流、交流和瞬態仿真等;Rbreak是這三個中唯一可以通過右鍵菜單“Edit PSpice Model”進行模型文本編輯的,一般進行蒙特卡洛分析時會使用這種;Resisitor主要用于高級仿真分析(如靈敏度分析、電應力分析等)。
接下來,我們分別看一下這三種電阻的差別。
認識電阻模型
jiexialai
雙擊 analog 庫中的 R,得到下圖所示的屬性項,以及各屬性項的含義
如果某一電阻的規格如下圖所示,該電阻的阻值我們假設是10k歐姆
那么可以對于上圖 標注的參數在屬性項中進行如下設置:
如果這時去看電路網表,可以看到電阻模型的語句為:
這就是電阻模型的SPICE格式:R
在電阻R屬性項中設置了“Tolerance”,這個就是定義了器件容差DEV,如果需要設置器件的批容差LOT,那就需要調用BREKOUT庫中的Rbreak.
點擊Rbreak元件,右鍵可以看到這個器件是可以編輯模型的,其他電阻右鍵中的“EditPSpiceModel”項是灰色的(不信你可以試試(????))
點擊編輯模型后會調用cadence軟件中編輯模型的工具model Editor
上述語句表明電阻模型名稱為RBREAK,元件容差DEV為5%,按照高斯分布進行變化;批容差LOT為5%,按照平均分布進行變化,線性溫度系數為100u,二次溫度系數TC2沒有設置,為默認的0。
這里的DEV和LOT在蒙特卡洛分析時起作用,TC在溫度分析時起作用。
從這你可以看出,不能直接編輯的Analog庫中的R是通過軟件內置的屬性編輯表格設置參數,而Rbreak是通過直接輸出SPICE語句的方式設置參數。對于軟件底層來說是一樣的,最后都是轉換成了SPICE語句。
如果需要進行電應力分析、靈敏度分析等PSpice AA(Advance Analysis)模塊的分析時,一般會選擇advanls文件下的PSPICE_ELEM庫中的Resisitor:
雙擊該電阻,你會發現它的屬性設置項更豐富,包含了高級分析中涉及到的各種參數,比如容差參數還可以設置正負容差不相同的情況。
從上面三種定值電阻的選擇和設置可以看出,仿真原理圖中的每個元件背后其實是一個個SPICE模型文件
仿真軟件已經提供了豐富的仿真器件,可以根據需求選擇最合適的元器件。電阻是這樣,其他元件也是同樣。如果需要將器件模型更趨于實際,可以通過設置模型參數或編輯模型,直接修改模型文件。
PSpice自帶庫中約含有五萬個帶仿真模型的元件,在17.4版本中,還增加訪問TI模型庫入口,可以輕松調用五千多個TI模擬集成電路(IC)模型。但在這電子技術飛速發展的時代,新器件、國產器件…還是大概率找不到模型,還有一些特殊功能的元件,甚至沒有什么型號,如果想要仿真都是需要自己建模的。
自己建模的方法:
一般我們有兩種選擇:
1、通過直接使用SPICE語言編寫lib文件建立模型
2、通過分立元件搭建電路生成器件模型文件
前者對于大多數工程師有極大難度,因為都沒有系統學習過SPICE語言,后者相對比較容易掌握。
通過分立元件搭建電路生成模型,也有兩種方式:
1、 采用繪制完整的內部子電路的方式建模
2、采用模擬行為模型(Analog Behavioral Modeling即ABM)的方式進行建模
如果對于IC芯片內部電路比較了解可以采用第一種方式,但是很多時候芯片內部電路是非常復雜的,如果不是IC廠商根本無法知道芯片內部電路,而且即使是芯片廠商,也不愿意采用公開內部詳細電路的方式建模。所有絕大多數還是選擇采用模擬行為模型ABM、布爾邏輯、IF語言和無源元件電阻、電容、電感等搭建電路的方式建模。
下面我們使用模擬行為模型的方式構建
一個壓控電阻的SPICE模型
壓控電阻的建模
壓控電阻就是電阻阻值隨著控制電壓的變化規律改變。
以構建一個基準值為50歐姆的壓控電阻的模型為例,說明如何創建一個可以用于PSpice仿真的模型。
步驟一
繪制子電路
在Capture的繪圖區中繪制圖1所示的電路圖,其中GVALUE為ABM(analog Behavioral Modeling模擬行為模型)器件,G器件是輸入是電壓信號,輸出是電流信號。GVALUE器件的表達式就是傳遞函數,圖1中GVALUE的傳遞函數是:V(1,2)/(Rref*V(Ctrl)),也就是輸出電流Io=V(1,2)/(Rref*V(Ctrl)),這就實現了電路1、2節點之間的電阻值為Rref*V(Ctrl),阻值隨著控制端電壓線性變化。圖中R1和R2主要是仿真中為防止懸空而放置的。
圖1 壓控電阻的子電路
步驟二
通過子電路創建lib文件
電路圖在軟件底層就是網表,在Capture界面下,選擇工程管理窗口,如圖2所示,點擊需要生成網表的那頁電路圖,如圖中的Rval,然后選擇菜單:Tool→Create Netlist。
圖2 創建電路網表
打開圖3的對話框,在PSpice標簽頁上點擊確定,創建Rval.lib。
圖3 創建lib文件
通過給定的路徑,我們可以在文件夾下找到剛剛生成的.lib的文件。
步驟三
用Model Editor生成olb文件
使用PSpice中的模型編輯器Model Editor打開剛剛生成的.lib文件,或者直接在文件夾內雙擊剛剛生成的.lib文件,執行File→Export to capture part library,如圖4所示,設置完畢后點擊OK。
圖4 輸出olb文件
步驟四
為新器件選擇合適的外觀
繼續執行File→Model Import Wizard,為該模型選擇合適的外形。如圖5所示,系統會提供默認的外觀,也可以通過“Replace Symbol”從元件庫中找到可以兼容的外觀直接應用。這里選擇使用默認外觀。
圖5 編輯新建模型符號
按完成按鈕之后,在工程文件夾下就可以看到下面兩個文件:
如果對于默認的外觀不滿意,可以通過Capture打開olb文件進行修改
步驟五
模型應用在工程
經過步驟三和步驟四,就生成了仿真模型必備的.lib和.olb文件。接著在需要調用新模型的工程下,執行PSpice→Edit Simulation Profile→Configuration File→Library,按照圖6的步驟,將新建的庫文件添加到工程中。
圖6 在工程中添加庫文件
之后就可以像調用自帶庫的元件一樣,將構建好的壓控電阻應用于圖7所示測試電路中。
圖7 測試電路
運行結果可以看出電阻的確隨著控制電壓的規律而變化。
說明建模成功,
這一期以最常見的電阻作為引子,讓大家看到了藏在直觀電路圖背后的模型文件,其實揭開這層面紗之后,大家反而更敢于去面對了。
審核編輯 :李倩
-
電阻
+關注
關注
86文章
5476瀏覽量
171696 -
仿真
+關注
關注
50文章
4048瀏覽量
133431 -
模型
+關注
關注
1文章
3178瀏覽量
48730
原文標題:PSpice建模 | 從電阻模型談起
文章出處:【微信號:吳少琴的模電課,微信公眾號:吳少琴的模電課】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論