今天看了下Altium Designer的電路仿真功能,發(fā)現(xiàn)它還是蠻強大的,按著help里面的文檔《TU0106 Defining & running Circuit Simulation analyses.PDF》跑了一下,覺得還行,所以就把這個文檔翻譯下。。。。。
其中包含了仿真功能的介紹,元件仿真模型的添加與修改,仿真環(huán)境的設置,等等。本人對SPICE仿真了解的不多,里面涉及到SPICE的文件如果有什么錯誤,歡迎提出!
一、電路仿真功能介紹Altium
Designer的混合電路信號仿真工具,在電路原理圖設計階段實現(xiàn)對數(shù)?;旌闲盘栯娐返墓δ茉O計仿真,配合簡單易用的參數(shù)配置窗口,完成基于時序、離散度、信噪比等多種數(shù)據(jù)的分析。Altium Designer 可以在原理圖中提供完善的混合信號電路仿真功能 ,除了對XSPICE 標準的支持之外,還支持對Pspice模型和電路的仿真。
Altium Designer中的電路仿真是真正的混合模式仿真器,可以用于對模擬和數(shù)字器件的電路分析。仿真器采用由喬治亞技術研究所(GTRI)開發(fā)的增強版事件驅動型XSPICE仿真模型,該模型是基于伯克里SPICE3代碼,并于且SPICE3f5完全兼容。?
SPICE3f5模擬器件模型:包括電阻、電容、電感、電壓/電流源、傳輸線和開關。五類主要的通用半導體器件模型,如diodes、BJTs、JFETs、MESFETs和MOSFETs。
XSPICE模擬器件模型是針對一些可能會影響到仿真效率的冗長的無需開發(fā)局部電路,而設計的復雜的、非線性器件特性模型代碼。包括特殊功能函數(shù),諸如增益、磁滯效應、限電壓及限電流、s域傳輸函數(shù)精確度等。局部電路模型是指更復雜的器件,如用局部電路語法描述的操作運放、時鐘、晶體等。每個局部電路都下在*.ckt文件中,并在模型名稱的前面加上大寫的X。
數(shù)字器件模型是用數(shù)字SimCode語言編寫的,這是一種由事件驅動型XSPICE模型擴展而來專門用于仿真數(shù)字器件的特殊的描述語言,是一種類C語言,實現(xiàn)對數(shù)字器件的行為及特征的描述,參數(shù)可以包括傳輸時延、負載特征等信息;行為可以通過真值表、數(shù)學函數(shù)和條件控制參數(shù)等。它來源于標準的XSPICE代碼模型。在SimCode中,仿真文件采用ASCII碼字符并且保存成.TXT后綴的文件,編譯后生成*.scb模型文件??梢詫⒍鄠€數(shù)字器件模型寫在同一個文件中。
Altium Designer 可實現(xiàn)如下功能:
1、仿真電路建立及與仿真模型的連接
AD 中由于采用了集成庫技術,原理圖符號中即包含了對應的仿真模型,因此原理圖即可直接用來作為仿真電路,而99SE中的仿真電路則需要另行建立并單獨加載各元器件的仿真模型。
2、外部仿真模型的加入
AD中提供了大量的仿真模型,但在實際電路設計中仍然需要補充、完善仿真模型集。一方面,用戶可編輯系統(tǒng)自帶的仿真模型文件來滿足仿真需求,另一方面, 用戶可以直接將外部標準的仿真模型倒入系統(tǒng)中成為集成庫的一部分后即可直接在原理圖中進行電路仿真。?
3、仿真功能及參數(shù)設置?
Altium Designer的仿真器可以完成各種形式的信號分析,在仿真器的分析設置對話框中,通過全局設置頁面,允許用戶指定仿真的范圍和自動顯示仿真的信號。每一項分析類型可以在獨立的設置頁面內完成。Altium Designer中允許的分析類型包括:?
1)? ?? ???直流工作點分析?
2)? ?? ???瞬態(tài)分析和傅立葉分析?
3)? ?? ???交流小信號分析?
4)? ?? ???阻抗特性分析?
5)? ?? ???噪聲分析?
6)? ?? ???Pole-Zero(臨界點)分析?
7)? ?? ???傳遞函數(shù)分析?
8)? ?? ???蒙特卡羅分析?
9)? ?? ???參數(shù)掃描?
10)? ? 溫度掃描等
二、操作步驟2.1、使用Altium
Designer仿真的基本步驟如下:1)? ?? ???裝載與電路仿真相關的元件庫
2)? ?? ???在電路上放置仿真元器件(該元件必須帶有仿真模型)?
3)? ?? ???繪制仿真電路圖,方法與繪制原理圖一致
4)? ?? ???在仿真電路圖中添加仿真電源和激勵源
5)? ?? ???設置仿真節(jié)點及電路的初始狀態(tài)
6)? ?? ???對仿真電路原理圖進行ERC檢查,以糾正錯誤
7)? ?? ???設置仿真分析的參數(shù)
8)? ?? ???運行電路仿真得到仿真結果
9)? ?? ???修改仿真參數(shù)或更換元器件,重復5~8的步驟,直至獲得滿意結果。
2.2、具體實現(xiàn)電路仿真的整個過程2.2.1、創(chuàng)建工程1)
在工具欄選擇?File ? New ? Project ? PCB Project?,創(chuàng)建一個PCB工程并保存。
2) 在工具欄選擇File
? New ? Schematic,創(chuàng)建一個原理圖文件并保存。
2.2.2、原理圖展示測試電路如圖
1:
圖1
2.2.3、編輯原理圖1、放置有仿真模型的元件根據(jù)上面的電路,我們需要用到元器件“LF411CN”,點擊左邊“Library”標簽,使用search功能查找LF411CN。找到LF411CN之后,點擊“Place
LF411CN”,放置元件,若提示元件庫未安裝,需要安裝,則點擊“yes”,如圖
2:
圖2
在仿真元件之前,我們可以按“TAB”鍵打開元件屬性對話框,在“Designator”處填入U1;接著查看LF411CN的仿真模型:在左下角Models列表選中Simulation,再點擊“Edit”,可查看模型的一些信息,如圖
3。
圖3
從上圖可以看出,仿真模型的路徑設置正確且?guī)斐晒Π惭b。點擊“Model
File”標簽,可查看模型文件(若找不到模型文件,這里會有錯誤信息提示),如圖 4。
圖4
點擊“Netlist
Template”標簽,可以查看網表模板,如圖 5。
圖5
至此,可以放置此元件。
2、為元件添加SIM Model文件用于電路仿真的Spice模型(.ckt和.mdl文件)位于Library文件夾的集成庫中,我們使用時要注意這些文件的后綴。模型名稱是模型連接到SIM模型文件的重要因素,所以要確保模型名稱設置正確。查找Altium
集成庫中的模型文件步驟如下:點擊Library面板的Search按鈕,在提示框中填入:HasModel('SIM','*',False)進行搜索;若想更具體些可填入:HasModel('SIM','*LF411*',False)。
若我們不想讓元件使用集成庫中提供的仿真模型,而想用別的模型代替,我們最好將別的模型文件復制到我們的目標文件夾中。
如果我們想要用的仿真模型在別的集成庫中,我們可以:
1)? ?? ? 點擊File
? Open,打開包含仿真模型的庫文件(.intlib)。
2)? ?? ???在輸出文件夾(打開集成庫時生成的文件夾)中找到仿真文件,將其復制到我們自己的工程文件夾中,之后我們可以進行一些修改。
復制好模型文件,再為元器件添加仿真模型。為了操作方便,我們直接到安裝目錄下的“Examples/CircuitSimulation/Filter”文件夾中,復制模型文件“LF411C.ckt”到自己的工程文件夾中,接下來的步驟:
1)? ?? ???在Project面板中,右擊工程,選擇“Add
Existing to Project”,將模型文件添加到本工程中。
2)? ?? ???雙擊元件U1,打開元件屬性對話框,在Model列表中選擇Simulation,點擊Remove按鈕,刪除原來的仿真模型。
3)? ?? ???點擊Model列表下方的Add下拉按鈕,選擇“Simulation”
4)? ?? ???在Model Sub-Kind中選擇“Spice
Subcircuit”,使得Spice的前綴為“X”
5)? ?? ???在Model Name中輸入“LF411C”,此時AD會搜索所有的庫,來查詢是否有與這名稱匹配的模型文件。如果AD找到一個匹配的文件,則立即停止尋找。對于不是集成庫中的模型文件,AD會對添加到工程的文件進行搜索,然后再對搜索路徑(Project
? Project Options)中的文件進行搜索。如果找不到匹配的文件,則有錯誤信息提示。
6)? ?? ???最后的步驟是檢查管教映射是否正確,確保原理圖中元件管腳與模型文件中管腳定義相匹配。點擊“Port
Map”,如圖 6:
圖6
修改管腳映射,在Model
Pin列表下拉選擇合適的引腳,使其和原先的SIM模型(LF411_NSC)相同。我們可以點擊Netlist
Template?標簽,注意到其模型順序為1,2,3,4,5;如圖
7:
圖7
這些和Model
File標簽中的.SUBCKT頭相對應,如圖
8:
圖8
因此,在“Port
Map”標簽中的“Model
Pin”列表中,我們可以看到1(1),
2(2), 3(3), 4(4), 5(5),被列舉出來,其中第一個數(shù)字就是模型管腳(就是Netlist Template中的%1,%2等),而subcircuit的頭則對應著小括號里面的數(shù)字。在Spice
netlist中,我們需要注意其中節(jié)點的連接順序,這些必須和.SUBCKT頭中的節(jié)點順序相匹配。
Netlist 頭描述了每個管腳的功能,根據(jù)這些信息我們可以將其連接到原理圖管腳,如:1(1)是同相輸入,故需連接到原理圖管腳3。
原先的管腳映射和修改的管腳映射如圖 9:
圖9
之后點擊“OK”,完成自定義仿真模型的添加。
3、放置有仿真模型的電阻電容放置電阻前,我們可以按“TAB”鍵,打開元件屬性窗口,設置電阻值;在Model列表中,選中“Simulation”,點擊“Edit”,查看仿真模型屬性。一般系統(tǒng)默認設置就是正確的,如果沒修改過,應該有如圖
10屬性:
圖10
同理,放置電容的情況也一樣,先設置電容值,再查看仿真模型屬性,如圖 11:
圖11
4、放置電壓源
1)? ?? ???首先放置VDD電源。使用“Library”面板的search功能,檢索關鍵字“VSRC”;查找到“VSRC”之后,雙擊元件,若提示集成庫未安裝則安裝,其集成庫為“Simulation
Sources.IntLib”。
2)? ?? ???在放置元件前,按“TAB”鍵,打開元件屬性對話框,再編輯其仿真模型屬性,先確保其“Model Kind”為“Voltage Source”,“Model Sub-Kind”為“DC
Source”。
3)? ?? ???點擊“Parameters”標簽,設置電壓值,輸入“5V”,并使能“Component Parameter”,之后點擊OK,完成設置。如圖
12:
圖12
4)? ?? ???同理放置VSS,并設置其電壓值為“-5V”
5)? ?? ? 最后添加正弦信號輸入:同樣是Simulation Sources.IntLib中的VSRC,打開其仿真模型屬性對話框,設置“Model Kind?”為“?Voltage
Source?”,而 “Model Sub-Kind”設置為“Sinusoidal”。
6)? ?? ? 點擊“Parameters”標簽,設置電壓值,可按如圖 13設置:
圖13
之后點擊OK,設置完成,放置信號源。
5、放置電源端口。1)?
?? ???點擊“Place ? Power Port”,在放置前按“TAB”鍵,設置端口屬性。
2)? ?? ???其中對于標簽VDD和VSS,其端口屬性為“BAR”。
3)? ?? ???對于標簽GND,其端口屬性為“Power
Ground”。
4)? ?? ???對于標簽OUT(網絡),其端口屬性為“Circle”
6、連線,編譯根據(jù)上面的原理圖連接好電路,并在相應的地方放置網絡標簽,之后編譯此原理圖。
2.2.4、仿真設置點擊“Design
? Simulate ? Mix Sim”,或是點擊工具欄中(可通過“View
? Toolbars ? Mixed Sim”調出)的圖標,進入設置窗口。如圖
14:
圖14
按照圖中顯示設置好“Collect
Data For”,“Sheets
to Netlist”和“SimView
Setup”等三個區(qū)域,并且我們可以看到有一系列的信號在“Available
Signal”中,這些都是AD計算出來并可以進行仿真的信號。如果我們想要觀察某個信號,只需將其導入(雙擊此信號)到右邊的“Active
Signal”中;同理,若想刪除“Active
Signal”中的信號,也可以通過雙擊信號實現(xiàn)。
1、傳輸函數(shù)分析(包括傅立葉變換)設置傳輸函數(shù)分析會生成一個文件,此文件能顯示波形圖,計算時間變化的瞬態(tài)輸出(如電壓,電流)。直流偏置分析優(yōu)先于瞬態(tài)分析,此分析能夠計算出電路的直流偏置電壓;如果“Use
Initial Conditions”選項被使能,直流偏置分析則會根據(jù)具體的原理圖計算偏置電壓。
首先應該使能“Transient
Analysis”;然后取消“Use
Transient Defaults”選項,為了觀察到50Khz信號的三個完整波形,我們將停止時間設置為60u;并將時間增長步長設置為100n,最大增長步長為200n。最終設置如圖
15:
圖15
2、交流小信號分析設置交流小信號分析的輸出文件顯示了電路的頻率響應,即以頻率為變量計算交流小信號的輸出值(這些輸出值一般是電壓增益)。
1)? ?? ???首先我們的原理圖必須有設置好參數(shù)的交流信號源(上面的步驟已經設置好)
2)? ?? ???使能“AC
Small Signal Analysis”選項
3)? ?? ???然后根據(jù)圖 16輸入?yún)?shù):
圖16
(注:如上圖,開始頻率點一般不設置為0,上圖100m表示0.1HZ,結束頻率點1meg表示1MHZ;“Sweep
Type”設置為“Decade”表示每100測試點以10為底數(shù)增長,總共有701個測試點。)
至此,交流小信號分析設置完成。AD進行此電路仿真分析時,先計算電路的直流偏置電壓,然后以變化的正弦輸入代替原有的信號源,計算此時的電路的輸出,輸入信號的變化是根據(jù)“Test
Points”和“Sweep
Type”這兩個選項進行的。
3、電路仿真與分析設置完成之后,就可以進行電路仿真——點擊“”圖標。在仿真過程中,AD會將一些警告和錯誤信息顯示在“Message”面板,如有致命錯誤可根據(jù)面板提示信息修改原理圖;如果工程無錯誤,此過程還會生成一個SPICE
Netlist(.nxs)文件,且此文件在每次進行仿真時都會重新生成。仿真分析結束會生成打開一個(.sdf)文件,里面顯示了電路的各種仿真結果(注:直流偏置最先執(zhí)行),如圖 17:
圖17
1)? ?? ???創(chuàng)建波特圖
波特圖包括了增益和相位信息,我們可以根據(jù)交流小信號分析結果得到電路的波特圖。首先右擊上半部分坐標圖的“in”信號,選擇“Edit
Wave”,打開編輯波形對話框,然后選擇左邊的“Magnitude
(dB)”,再點擊“Creat”按鈕。如圖
18:
圖18
同理,對輸出增益,在上半部分的坐標圖中右擊,選擇“Add
Wave to Plot”,在彈出的對話框中“Waveforms”列表選擇“out”信號,并在右邊的“Complex
Functions”列表選擇“Magnitude
(dB)”,然后點擊“Creat”按鈕,得到輸入輸出的增益圖。
之后重復上述步驟添加相位圖,注意在“Complex
Functions”列表選擇“Phase
(Deg)”,最后結果如圖 19:
圖19
(我們可以在同個坐標圖上顯示不同的Y軸,使不同的曲線對應不同的Y坐標——只需在編輯或添加波形文件時,選中“Add
to new Y axis”即可;若刪除坐標軸,相應的曲線也會刪除,且在這模式下沒有Undo 功能,故誤刪的話需重新導入曲線。)
2)? ?? ???使用光標工具分析
點擊“DB(out)”曲線,右擊選擇“Cursor
A?”,再右擊選擇“Cursor
B”,打開兩個測量光標,將光標按圖 20放置:
圖20
再點擊“Sim Data”標簽,可以看到此時B-A?=
-3,且光標B的頻率為“20kHz”,如圖 21:
圖21
故3dB點的頻率為20kHz。
2.2.5、參數(shù)掃描設置參數(shù)掃描功能使得我們能夠讓特定的元件在一個范圍內變化;當然相應的交流、直流或瞬態(tài)分析也要使能,才能觀察相應的特性曲線或數(shù)據(jù)。具體步驟如下:
1)? ?? ???首先點擊圖標,打開設置窗口,使能“Parameter
Sweep”
2)? ?? ???接著選擇首要掃描參數(shù)元件C2,更改參數(shù);再使能第二參數(shù)掃描功能,選擇C1,更改參數(shù);參數(shù)設置如圖
22:
圖22
設置好之后,點擊Ok,進行電路仿真。仿真后的一些結果如圖
23,圖 24與圖 25:
圖23
圖24
圖25
點擊相應的曲線,相應的元件(電容)參數(shù)會在左下角顯示。
2.2.6、高級設置“Advanced
Options”設置頁面包含一系列的內部SPICE選項,這些選項會影響仿真計算速度,像錯誤容量和重復限制等。如圖 26
圖26
一般按著系統(tǒng)默認的設置就可以進行仿真,若想修改參數(shù)只需在相應的條目修改Value值即可。設置“Integration
method”從Trapezoidal?到?Gear,則計算時間變長,但仿真效果更好,若選擇更高的Gear值,效果更好,時間更長。
2.2.7、使用SPICE Netlist進行仿真上文提到軟件仿真時會生成SPICE
Netlist(.nsx)文件,我們也可以根據(jù)這個文件進行電路仿真分析。我們也可以通過點擊圖標生成此文件,然后通過此文件進行仿真。設置更改時點擊Simulate
? Setup,進行仿真:Simulate
? Run。