0.1 簡介
ISIS獨特地提供了活動器件技術,通過該技術,您能自己創建可在仿真器中展現動畫效果的新庫部件。這極大地增強了電路動畫演示效果,因爲您不再侷限於系統通過硬編碼實現的一小部分的動畫器件。
如果您已經熟悉在PROTEUS中創建ISIS庫部件與仿真模型,則您會覺得創建新的活動器件的原理也很通俗易懂。然而,就象創建一個好的仿真模型一樣,爲能達到最佳效果,也要求您精通電子學且想象力豐富。
希望您具備以下技能:
l 熟悉ISIS的2D圖形技術,包括運用圖形格式,以及如何調整顏色、線寬、填充方式等。更詳細的介紹請參閱ISIS手冊
l 能創建普通的庫器件。同樣,在ISIS文檔中有詳細說明
l 能創建仿真模型(MDF文件)。本書中的模擬與數字建模教程是最好的學習教材。
一共有兩類活動器件
l 指示器:它們通過圖形方式響應仿真過程中發生的事件。例如燈泡、LED及邏輯探針。指示器可有n種狀態,也可以只有兩種狀態,它們可以被父器件管腳直接控制,也可被更復雜的仿真模型中的探針所控制。
l 激勵器:它們可以響應鼠標操作,其動作將改變電路的電氣狀態。例如開關、電位計以及邏輯狀態輸入。激勵器可以是瞬態的,也可被鎖存起來,它們可以有任意數目的狀態。
0.2 指示器舉例 - 燈泡
對於初學者而言,LAMP模型是既簡單又好的指示器例子。它表示了燈泡元件既可作爲一個簡單的阻性負載,且其亮度還依賴於其兩端電壓差值。該電氣模型有兩個用戶參數,一個是值,它表示燈泡的標稱電壓,另一個是參數爲電阻。
示例工程ACTVLAMP.DSN包括後續將討論的所有特性。
0.2.1 創建活動符號
可通過使用多個ISIS符號來完成活動器件的動畫效果。
每一個符號都包含了表示燈泡給定亮度的圖符,以及器件基本名稱(此處爲LAMP),一個下劃線字符,以及符號所表示的活動狀態。
有關這些符號,請注意以下幾點:
l 這些符號沒有必要包含元件管腳-對於每個活動狀態,系統將自動畫出管腳
l 一般地,每個活動符號必須在屏幕上具有相同的像素位置,即使是那些與背景色相同的像素點也要一併保持。例如,符號LAMP_0中也包括髮光射線,只不過其顏色與背景色一致,看不到罷了,這樣做的好處在於,如果從其它狀態切換到LAMP_0,則它可以通過畫出該背景色的射線,達到正確顯示的效果(不然的話,其它狀態的射線仍將顯示,不過在這一點,Proteus的軟件沒有處理好,應該在該區域重畫,或採用XOR方式再畫一遍達到清除效果,而不應要求用戶做這些事。陳斌文注)。這樣設計導致的失敗將使得在動畫過程中圖形交疊。
l 我們將假定活動器件圖形符號缺省背景色爲黑色或暗色,主要原因是這樣可以保證燈泡、LED等器件能比較清晰地顯示。對於白色背景而言,一個燈泡發出白色光是不可見的。(難道Proteus不能換背景顏色?陳斌文注)
l 如果STATE屬性值越界,則不會畫出活動符號,而會顯示出基本的器件符號。這種處理方式將很容易的讓用戶發現當前狀態是否爲正常動畫效果。
0.2.2 創建庫部件(設備)
下一步將爲活動器件創建設備庫部件,該過程基本與普通電氣模型的創建過程相同。ACTIVE.LIB中的LAMP器件有以下屬性定義:
名稱 |
描述 |
數據類型 |
編輯模式 |
缺省值 |
LOAD |
Load Resistance |
FLOAT (PNZ) |
NORMAL |
100 |
MODFILE |
模型文件 |
STRING |
HIDDEN |
LAMP.MDF |
LAMP器件還有一個缺省爲12V額定電壓值,其類型爲字符串類型。
l LOAD屬性爲一個普通模型參數定義,它允許用戶在edit Component對話框中輸入一個正值作爲負載電阻。這種屬性定義的使用方法已在ISIS手冊中進行了詳細說明。
l MODFILE屬性說明燈泡的分析模型保存在文件LAMP.MDF中。這與其它已建模的ISIS庫中元件的處理方式沒有什麼不同。在本文中其它地方已有針對建模技術的擴展說明。請注意,在某些情況下,器件將可能被當作爲諸如RTSWITCH或RTVPROBE等仿真基本元素,此時,應當在PRIMITIVE屬性中進行指定。
定義了電氣屬性後,最後一步操作就是在Make Device對話框中點擊Active Model按鈕,將彈出以下對話框:
Name Stem編輯框將設置各圖形符號名稱的公共部分,在此爲LAMP,而No. of States字段將設置圖形符號數目。Bitwise States與Link to DLL字段的含義將在其它地方進行說明。
0.2.3 創建原理圖模型
就象創建普通器件的模型一樣,創建與測試一個模型的最好途徑是使用測試環境。它是一個電路,其中的一部分爲設計成爲多層次結構的模塊器件,其子模塊包含模型部分。
此外,創建活動器件的模型唯一不同之處在於,一些特殊仿真基本元素可以在ISIS中用來將模型鏈接回到其父器件。
本例中的活動燈泡的原理圖模型如下圖所示:
該電路中的關鍵部分在於RTVPROBE(實時電壓探針)VP1。該特殊仿真基本對象可以測量其兩端電壓之間的電壓,並將其傳回其父指示器件。MAX屬性將設置父器件(燈泡器件)的VALUE屬性,並決定電壓值的量程。
電阻R1表示負載阻抗(它也是一個來自於父器件的參數),而控制源AVS1將取得電阻兩端的絕對電壓值,並將其施加到電壓探針上。使用AVS1的原因在於,無論燈泡以何種方式進行連接,它都必須工作(不懂,陳斌文注)。乘積因子0.9表示燈泡將LAMP_8顯示爲其標稱電壓,而白燈狀態LAMP_9僅在燈泡過驅動時進行顯示(更不懂,陳斌文注)。
爲完成創建活動燈泡的建模過程,該電路應畫在測試電路的子模塊上,然後編譯生成模型文件LAMP.MDF,即文件名與MODFILE屬性值相對應。
0.3 激勵器舉例 – 活動開關
我們的第二個例子將考慮一個簡單的激勵器:活動開關(單刀單擲)
示例工程ACTVSPST.DSN包括後續將討論的所有特性。
因爲開關器件很簡單,其電氣模型可直接採用RTSWITCH基本元素,因此無需原理圖模型。該器件只有兩個狀態(開與關),因此,僅需兩個活動符號:
系統支持兩類激勵器:靜態與瞬態。靜態激勵器可以有N種狀態,其狀態切換可通過用鼠標單點其增/減控件(或使用鼠標滾輪,當然前提條件是您的鼠標有這玩意)。瞬態激勵器只能爲兩狀態,通過鼠標左鍵的按下彈起完成狀態0與狀態1的互相切換。您可以將INCREMENT與DECREMENT標識放在圖形符號旁邊來將定義開關爲靜態激勵器。製作設備之前的圖形樣式看起來如下圖所示:
若要製作一個瞬態開關或按鈕,您應當使用一個TOGGLE標識。
0.3.1 活動開關的屬性定義
開關器件的其餘部分將通過其屬性來進行定義:
名稱 |
描述 |
數據類型 |
編輯模式 |
缺省值 |
R(0) |
關斷阻抗 |
FLOAT (PNZ) |
NORMAL |
100M |
R(1) |
接通阻抗 |
FLOAT (PNZ) |
NORMAL |
0.1R |
TSWITCH |
開關時間 |
FLOAT (PNZ) |
NORMAL |
0.1ms |
PRIMITIVE |
基本對象類型 |
STRING |
HIDDEN |
PASSIVE, RTSWITCH |
STATE |
活動狀態 |
INTEGER |
HIDDEN |
0 |
l 屬性R(0)、R(1)與TSWITCH將控制RTSWITCH仿真器的行爲。該器件爲一個N狀態可變電阻,而其STATE屬性將選擇其N種可能的電阻值中的一個。因此它在對活動電位計與多狀態開關等進行建模時非常有用,多極開關可通過使用GANG屬性來進行建模,而多擲開關可通過在原理圖中採用多個RTSWITCH基本元素這種途徑來建模。在本例中,原理模型中的RTSWITCH部件應當有以下的屬性賦值
PARENT=<ACTUATOR>
TSWITCH屬性確保開關阻抗中,沒有不連續段,否則將導致SPICE仿真分析過程中的收斂性問題。
l 通過PRIMITIVE屬性,可以使得在電路進行了仿真時生成網絡表過程中,活動開關將由一個RTSWITCH基本元素來代替。該仿真類型被指定爲PASSIVE,因爲RTSWITCH是一個混合模型的基本元素對象。
l 屬性STATE表示激勵器的缺省狀態,即當創建該類型對象時會採用的狀態。與指示器不同之處在於,即使在仿真停止的情況下,它也不會被複位設置爲-1,激勵器將保持在您所離開時的狀態。
與LAMP模型中一樣,最後一步操作就是點擊Active Model按鈕。在本例中,Name Stem內容爲SWITCH,而No. of States爲2。
0.4 位指示器
如果要創建7段數碼管或其它包含一個數字元素的器件時,有時將其狀態考慮成爲一個二進制值還比較有用。否則,對於一個七輸入設備,有128種不同的組合,難道您還會畫出128種不同的符號來進行表示嗎?
我們以7段數碼管爲例進行說明,可通過Active Component Model對話框中將該模型被定義爲一個位指示器,如下圖所示:
它同時也指定了符號公共名稱,即7SEG,並且設置其共有7種狀態。
對於每個狀態元素,需要兩個符號,以及一個表示背景的公共符號。下圖爲全套活動符號示意圖:
爲清楚說明起見,我們將符號分解開,這樣各個符號定義都有一個與左上頂的顯示區域相應的原始對象。如果狀態值中的位0爲0,則畫出7SEG_0_0,而如果狀態值中的位0爲1,則畫出7SEG_0_1。位1也類似地確定7SEG_1_0與7SEG_1_1畫出關係,其餘類推可知。
如果需要一個數字7段數碼管模型,則可以指定一個RTDPROBE基本元素
PRIMITIVE=DIGITAL,RTDPROBE
所創建的顯示器件中,採用7個名稱爲D0~D6的管腳就足夠了。
然而,如果要建立滿足模擬特性的模型,則需要使用原理模型:
流經各個二極管的電流可能過一個單獨的RTIPROBE來進行測量。各探針的屬性ELEMENT用來確定顯示圖形中的某段是受控制的。
當然,本模型爲共陰方式。
0.5 組激勵器
有時候,需要在電路圖中將兩個相似的激勵器當成一個來操作,該功能可以通過屬性GANG來完成。例如,在下圖所示的雙向馬達電路中,兩個SPDT開關通過一個虛擬的機制來完成組操作:它們都有一個相同的賦值語句:
GANG=1
一般地,擁有相同的GANG屬性值的所有激勵器都將聯合操作。
1.1 支持PLD模型
PROSPICE提供一些基本元素模型,以支持設計可編程邏輯器件(PLD)模型。可編程邏輯器件爲普通設備,它們可以進行編程,以完成相關的組合與時序功能。該設計週期包括PLD編程,它通過PLD生產廠家或第三方所提供的軟件編譯成一個JEDEC fuse map文件。該文件列出器件中的保險絲,它們可通過編程方式進行熔斷或保持正常。作爲一個JEDEC文件,該文件定義了一個標準格式,以便不同用戶可以對一個物理器件進行編程規範使用。
爲對PLD進行編程建模,所有的DSIM基本元素模型都將在本節中進行說明,並被配置爲一個JEDEC文件,賦予相關模型控制屬性爲保險絲表達式。在仿真分析開始時(不是在模型編譯成爲MDF文件時),指定的JEDEC文件將被載入,其相應保險絲表達式的布爾結果將用來配置相應的基本元素模型。
請注意,所有支持PLD模型僅提供功能性支持,而沒有傳播(延遲)屬性。您應當對輸出端使用緩衝器或延遲對象來進行這方面的建模工作。
在第一次使用這些基本模型之前,提醒一點,PLD ISIS庫已包括許多流行的PLD器件的模型,另外,在SAMPLES目錄下有兩個設計工程文件16L8.DSN與22V10.DSN。這兩個工程演示瞭如何將一個PLD庫中的PLD器件鏈接到一個JEDEC文件,以及如何指定器件速度。另外,16L8.DSN工程中,在16L8的子模塊中包括一個完整的16L8等價電路模型實例。在着手做您自己的模型之前參考一下應當是一個不錯的主意。
1.2 保險絲表達式
一個保險絲表達式是一個由操作符所分隔開的一系列值,它將計算得到一個布爾值。保險絲表達式用於所有的支持PLD的基本模型中,以初始化模型的控制屬性,針對FUSE基本模型來說,可以確定模型的輸出。
在一個保險絲表達式中,一個值要麼爲一個常量,要麼爲一個在括號中的子表達式,如下所示:
T, TRUE |
- |
TRUE常量。其運算結果爲布爾真值 |
F, FALSE |
- |
FALSE常量。其運算結果爲布爾假值 |
Dn |
- |
輸入管腳n。如果相應的輸入爲激活狀態,則其值爲真,如果相應的輸入爲非激活狀態,則其值爲假。請注意,並不是所有的保險絲表達式都允許引用輸入管腳進行建模,用於初始化模型控制屬性的表達式將不支持這樣的引用。 |
n |
- |
整數(如,1023,10919等),用於表示保險絲數目。如果保險絲被編程設置爲熔斷(即在JEDEC文件中爲1),則其結果爲真;如果保險絲被編程設置爲正常(即在JEDEC文件中爲0),則其結果爲假 |
(…) |
- |
子表達式,用於計算子表達式的布爾值 |
這些值有可能受一元求非操作符”!”的作用。如果求非操作符的數目爲奇數,則其結果將爲原始值的求非值。這種運算策略可以允許採用如下形式:一個表達式包括一個求非運算符所作用的映射屬性,然後該映射屬性本身包含一個求非的值。因爲ISIS用直接代替法處理映射屬性,這將導致一個包含兩個一元求非操作符的表達式,然後再進行正確的運算。
EXPR=...!<FUSE>
...
FUSE=!1024
其結果爲
EXPR=...!!1024
保險數可以通過以下操作符進行組合,而不用使用括號:
+ |
- |
左右表達式相加 |
- |
- |
從左邊減去右邊 |
就象一個保險數那樣,其結果值將計算得到一個布爾值。如果你希望求得結果的求非後的值,則須將求非操作符置於第一個保險數之前。例如,表達式
!1021+5+6
將計算得到FALSE值,如果1032保險數被編程設計爲熔斷(在JEDEC文件中值爲1);相應地,如果並沒有對其進行編程(在JEDEC文件中爲0),則其結果爲TRUE。
很明顯,一個保險數的解釋有賴於PLD電路。幾乎所有的PLD都使用一個保險以將管腳連接到地,正如左側所示。因此,一個含未編程保險數的輸入在電氣上爲低邏輯,而含一個編程保險數的輸入爲電氣高邏輯。因爲,一個未編程保險對應於JEDEC文件中的0值,而編程保險對應於JEDEC文件中的1值,可以這樣認爲:JEDEC文件中的值直接等價於輸入的電氣值,也即是輸入的布爾值(0=low=FALSE, 1=high=TRUE).
布爾值可以通過以下操作符進行組合:
& |
- |
左右布爾值進行邏輯與操作 |
| |
- |
左右布爾值進行邏輯或操作 |
^ |
- |
左右布爾值進行邏輯異或操作 |
保險數操作符比布爾操作符的優先級更高,但在各個操作符組內部沒有優先級的不同,其操作順序都是由左至右順序執行。例如,表達式
D0&10+20|D3
其計算過程爲(使用括號來表示順序):
(D0&30)|D3
因此,如果保險數30是編程過的(即,熔斷值,在相關聯的JEDEC文件中其值爲1),則表達式爲“D0|D3”,同樣,如果險數30是未編程過的(即,非熔斷值,在相關聯的JEDEC文件中其值爲0),則表達式爲“D3”
舉另一個例子,表達式
D0^!1024+6
如果在JEDEC文件中,保險數1030=1,則其計算結果爲“D0”(因爲FALSE與任意數進行異或操作,其結果爲該任意數);如果在JEDEC文件中,保險數1030=0,則其計算結果爲“!D0”(因爲TRUE與任意數進行異或操作,其結果爲該任意數的求非值)。最後再舉一個例子,如表達式:
((D0&!1024&!1023)|(D1&!1024&1023)|
(D2& 1024&!1023)|(D3& 1024&1023))^1022
其運行效果爲一個使用求非保險編程數的4選1保險編程數,將根據由保險數1024(最高位)與1023(最低位)組成的二位二進制數來選擇四個輸入中的一個(D0~D3),如果保險數1022已編程,則結果爲所選出的輸入的求非值。
不要擔心保險表達式的長度,該表達式計算器也是一個優化過的預編譯器,因此,即使一個很長的表達式(計算起來也很慢)其計算結果將會爲1到2項。從根本上來說,JEDEC文件必須爲一個ASCII文本文件,而保險數必須按行配置爲相應的格式
[[whitespace]] Laddr [0|1] [[whitespace]] 0|1 [[whitespace]] etc *
各行包括空白字符,其後爲字母L(大小寫均可),緊隨其後的是第一個保險數的十進制數。空白字符爲任意能在文件中產生空格的字符,包括空格、換行符、TAB等。在此之後爲一串01碼,之後可用多個空白字符進行分隔。序列的結果採用星號字符,它可位於最後的0或1之後,或者乾脆它可以自成一行。以下JEDEC文件中所有的保險數所在的行都將被DSIM正確解析(將忽略註釋與校驗和)
BUS CONTROLLER PAL
(C) ACME RESEARCH
24 JUN 1993*
102A*1200*1232*
L000 0 0 0 0 0 0 0 0 0 1 0 1 1000 *
L128 1010 0000 1010 0000
*L
256 101010100000101
010101101010010*
CF2A*
DSIM認爲,PLD中所有保險數的缺省狀態都將被連接,JEDEC文件中的0值表示相應的保險數不被處理(即保持連接),而其1值表示相應的保險數被熔斷,即該連接爲斷路。一個斷路連接被認爲是懸空狀態,爲邏輯高狀態。
1.3 常見基本元素模型
1.3.1 電容模型 – CAPACITOR
這是一個純的理想化器件。不考慮電阻、電感與泄漏。
電容模型支持以下屬性:
屬性 |
缺省值 |
描述 |
PRECHARGE |
- |
電容初始電壓。該屬性爲PROSPICE對標準SPICE的擴展。如果沒有指定該屬性,則電容的初始電壓值將取自工作點。 |
IC |
- |
電容初始電壓,僅當未計算初始直流解時可用 |
1.3.2 電流源模型 – CSOURCE
儘管電流源是一個信號發生器,但本文將它在這裏進行說明,因爲在電路仿真分析時它是一個初等基本元素。
電流源沒有什麼需要保存的屬性。
1.3.3 無損延遲線模型 – TRANLINE
該延遲線模型表示爲一個無損傳送線的行爲。只針對一種傳播模式進行了建模。如果在電路中所有4個節點都不相同,則應用兩個延遲線來表示兩個傳播模式。可指定頻率與歸一化長度或時間延遲量。
無損延遲線模型有以下相應缺省值的屬性:
屬性 |
缺省值 |
描述 |
Z0 |
- |
阻抗參數 |
F |
1GHz |
頻率 |
TD |
- |
傳輸延遲 |
NL |
0.25 |
給定頻率的歸一化長度 |
V1 |
0 |
1端初始化電壓值 |
V2 |
0 |
2端初始化電壓值 |
I1 |
0 |
1端初始化電流值 |
I2 |
0 |
2端初始化電流值 |
1.3.4 有損延遲線模型 – LOSSYLINE
統一的RLC/RC/LC/RG傳輸線模型(後稱LOSSYLINE模型)針對常量分佈傳輸線進行建模。RC與LC情況下,也可用TRANLINE與URCLINE模型;然而,新的LOSSYLINE模型在通常情況下都比其它模型更快,還更精確。該模式模型的操作基於傳輸線對輸入的脈衝響應爲迴旋狀的。
有損延遲線模型有以下相應缺省值的屬性:
屬性 |
缺省值 |
描述 |
V1 |
- |
1端初始化電壓值 |
V2 |
- |
2端初始化電壓值 |
I1 |
- |
1端初始化電流值 |
I2 |
- |
2端初始化電流值 |
R |
- |
每米電阻值 |
L |
- |
每米電感值 |
G |
- |
每米電導值 |
C |
- |
每米電容值 |
LEN |
- |
線長 |
REL |
1.0 |
斷點處相對導數 |
ABS |
1.0 |
斷點處絕對導線 |
NOCONTROL |
TRUE |
無時間步長控制 |
STEPLIMIT |
TRUE |
始終限制時間步長爲0.8*(線延遲) |
NOSTEPLIMIT |
TRUE |
非始終限制時間步長爲0.8*(線延遲) |
LININTERP |
TRUE |
使用線性插值算法 |
QUADINTERP |
TRUE |
使用二次插值算法 |
MIXEDINTERP |
TRUE |
如果不能接受二次插值,則用一次插值算法 |
TRUNCNR |
FALSE |
循環計算時使用N-R撫今迭代 |
TRUNCDONTCUT |
FALSE |
不限制時間步長以保持脈衝響應錯誤率較低 |
COMPACTREL |
RELTOL |
直線檢查時的特殊相對容差 |
COMPACTABS |
ABSTOL |
直線檢查時的特殊絕對容差 |
已經實現線的下列類型:RLC(只有串行損失的統一傳輸線)、RC(統一RC線)、LC(無損傳輸線)及RG(只有分佈式串行電阻與並行電導)。其它類型的組合還會產生錯誤的結果,不要試圖使用它們。必須指定線長度LEN。
NOSTEPLIMIT爲一個標誌,它將移除時間的缺省限制,以在RLC類型情況下減少線延遲。NOCONTROL爲一個標誌,它針對RLC與RC類型可防止基於卷積的缺省時間的限制誤差。它可使仿真加速但可能在某些情況下降低結果精度。LININTERP爲一個標誌,如果該標誌爲TRUE,則在計算延遲信號時會使用線性插值算法,而不是缺省的二次插值算法。MIXEDINTERP爲一個標誌,如果該標誌爲TRUE,則使用米制來判斷二次插值算法是否適於應用,如果不行,則會採用線性插值算法;否則,它將採用缺省的二次插值算法。TRUNCDONTCUT爲一個標誌,它移除缺省時間步長以限制實際數量相關脈衝響應計算誤差。COMPACTREL與COMPACTABS爲控制所保存歷史值的數量指標,值越大,則精度越低,但可提高仿真速度。它們可與TRYTOCOMPACT仿真器選項一同使用。TRUNCNR爲一個標誌,它採用Newton-Raphson迭代法以在時間步長控制流程中決定適宜的時間步長。其缺省方式爲試驗性的,通過將上次的步長減半以產生新的差值。REL與ABS爲控制斷點設置的數量指標。
提高仿真速度的最值得試驗的選項是REL。其缺省值爲1,基於準確性的觀點來看,它通常是安全的,但偶爾也會增加計算時間。如果使用大於2的值將消除所有的斷點,也可一試,但應視電路剩餘部分的本質而定。如果期望電路不顯示突變,則可消除全部斷點。如果期望設置較多的斷點,可設置爲在0與1之間的值。
在TRYTOCOMPACT選項設置爲仿真器的控制選項時,也可試一試COMPACTREL。其合法範圍爲0~1。值越大通常會降低仿真分析的精度但在某些情況下會提高速度。如果未指定TRYTOCOMPACT,不會壓縮數據,並能取得較高精度。NOCONTROL、TRUNCDONTCUT與NOSTEPLIMIT也可提高精度,但其代價是降低速度。
1.3.5 統一RC傳播線模型 – URCLINE
URC模型派生於L. Gertzberrg於1974年所提出的模型。該模型將一個擴展URC線的子電路類型連同其內部生成的節點一起加入到集總RC段的網絡中。RC段爲幾何表示方式,它向着URC線的中間增加,其K爲一個比例常數。如果集總段使用的數目沒有指定爲URC線器件,則它由下式所決定:
URL線嚴格由電阻與電容所組成,除非ISPERL參數爲一個給定的非零值,在此情況下,電容將用帶有零偏PN結反相偏置二極管所代替,它們的電容值相等,且傳輸線飽和電流爲ISPERL安培/米,其可選的串行電阻爲RSPERL歐姆/米。
URCLINE模型有以下相應缺省值的屬性:
屬性 |
缺省值 |
描述 |
L |
- |
傳輸線長度 |
N |
見上 |
數目 |
K |
1.5 |
傳輸常數 |
FMAX |
1e+009 |
最大頻率 |
RPERL |
1000 |
單位長度的電阻值 |
CPERL |
1e-012 |
單位長度的電容值 |
ISPERL |
0 |
單位長度的飽和電流值 |
RSPERL |
0 |
單位長度的二極管電阻值 |
1.3.6 電感模型 – INDUCTOR
這是一個純的理想化器件。不考慮電阻、非線性與飽和特性。通過賦值與命名方式處理互感。在ISIS中互感集合與多部件器件處理方式相同,該集合中所有對象同名,再附加上一個冒號與字母(如L1:A與L1:B)。互感值由其中一個元素中的MUTUAL_elem屬性進行指定。Elem應當爲相應的互感對象有元素代號,而該值爲這兩個元素間的互感值。如:
L1:A, MUTUAL_B=0.5
L1:B
表明兩個電感,其間互感值爲0.5。互感值必須在0到1之間取值。
示例工程MUTUAL1.DSN與MUTUAL2.DSN演示了更多細節。
您不能並聯兩個電感,或將一個理想電壓源直接作用於電感兩端,電感的電阻爲0,因此會產生無窮大的電流,或,仿真器將實際報告一個退化矩陣。
電感模型有以下相應缺省值的屬性:
屬性 |
缺省值 |
描述 |
IC |
- |
電感中的初始電流。該屬性僅在未計算初始直流值時有作用 |
MUTUAL_elem |
- |
與相應電感之間的互感係數 |
1.3.7 模擬電阻模型 – RESISTOR
與電流源一樣,電阻也是一個初等基本元素。電阻的溫度模型通過兩個參數來表示,分別定義一階與二階溫度係數,如下方程所示:
其中
電阻模型有以下相應缺省值的屬性:
屬性 |
缺省值 |
描述 |
TC1 |
0.0 |
上式中的A值 |
TC2 |
0.0 |
上式中的B值 |
TEMP |
27 |
電阻的實際溫度值 |
TNOM |
27 |
測量TC1與TC2時的溫度值 |
1.3.8 電壓控制電壓源模型 – VCVS
電壓控制電壓源爲SPICE中所使用的一個初等基本元素,其輸出電壓值與輸入電壓值成比例。
電壓控制電壓源模型有以下相應缺省值的屬性:
屬性 |
缺省值 |
描述 |
GAIN |
1.0 |
電壓增益值 |
IC |
- |
控制源的初始條件 |
其中,參數GAIN也可由器件的value字段給出。
1.3.9 電壓控制電流源模型 – VCCS
電壓控制電流源爲SPICE中所使用的一個初等基本元素,其輸出電流值與輸入電壓值成比例。
電壓控制電流源模型有以下相應缺省值的屬性:
屬性 |
缺省值 |
描述 |
GAIN |
1.0 |
器件電導值 |
IC |
- |
控制源的初始條件 |
其中,參數GAIN也可由器件的value字段給出。
1.3.10 電流控制電壓源模型 – CCVS
電流控制電壓源爲SPICE中所使用的一個初等基本元素,其輸出電壓值與輸入電流值成比例,該輸入電流值有以下幾種情況:流經其輸入管腳,通過電流探針,或由PROBE屬性所指定的電壓源。
電流壓控制電壓源模型有以下相應缺省值的屬性:
屬性 |
缺省值 |
描述 |
GAIN |
1.0 |
器件電阻值 |
PROBE |
- |
電壓源或電流探針名稱 |
IC |
- |
控制源的初始條件 |
其中,參數GAIN也可由器件的value字段給出。
1.3.11 電流控制電流源模型 – CCCS
電流控制電流源爲SPICE中所使用的一個初等基本元素,其輸出電流值與輸入電流值成比例,該輸入電流值有以下幾種情況:流經其輸入管腳,通過電流探針,或由PROBE屬性所指定的電壓源。
電流壓控制電流源模型有以下相應缺省值的屬性:
屬性 |
缺省值 |
描述 |
GAIN |
1.0 |
器件電流增益 |
PROBE |
- |
電壓源或電流探針名稱 |
IC |
- |
控制源的初始條件 |
其中,參數GAIN也可由器件的value字段給出。
1.3.12 任意控制源模型 – AVS、ACS
任意控制電流電壓源類型器件具有額外的更強功能。其輸出由一個符號表達式所確定,該表達式可用任意數目的輸入電壓電流值來表示。
ASIMMDLS.LIB中的下列器件依賴於這種模型:
AVCVS AVCCS ACCVS ACCCS SUMMER MULTIPLIER
可在器件的value字段中錄入表達式,如果需要更多的內容,您可以在VALUE屬性中使用一個賦值語句。
在表達式中,電壓輸入值可用V(A)、V(B)、V(C)等符號表示,這些值爲相應管腳A、B、C的電壓值。系統還支持V(A,B)這種形式,表示管腳A、B之間的電壓差值。
電流管腳值可用I(A,B)表示,即爲流入A、流出B的電流值。一旦在電流表達式中出現管腳對形式,則它們之間的阻抗值爲0。
表達式計算過程中還支持以下數學函數:
abs acos acosh asin asinh atan atanh cos
cosh exp limit ln log pwr pwrs sgn
sin sinh sqrt stp tan u uramp
limit函數有三個參數x, y, z,如果x<y則返回y,如果x>z則返回z,其它情況將返回x。
pwr函數有兩個參數,它計算|x|的y次方。而pwrs帶有符號,即當x>=0時,返回|x|^y;而當x<0時返回-|x|^y。這兩個函數爲標準SPICE3F5的擴展,用以與PSPICT相兼容。
u或stp函數爲階躍函數,當其參數值大於1時值爲1,而參數值小於0時值爲0(這是階躍函數嗎?原文The u or stp function is the unit step function, with a value of one for arguments greater than one and a value of zero for arguments less than zero.)
uramp函數爲階躍函數的積分,當x>0時,uramp(x)的值爲x,而當x<0時,uramp(x)的值爲0。這些函數可用於處理分段非線性傳遞函數,當然,在開關點時可能會發生收斂性問題。
表達式中還支持以下標準操作運算:
+ - * / ^
用表達式x^y可求得x的y次方,也可用pwr函數來達到這個目的。
如果函數log、ln或sqrt的參數爲負值,則會使用其絕對值。如果一個除法運算、ln或log函數參數爲0,則會導致出錯,使得仿真分析無法繼續。
可將一個電容與電流源並聯,在零初始條件下即可得到一個時間值(A value for time)。
該斜坡電壓可用於sin、cos等函數以構造FM信號發生器、壓控振盪器及其它功能模型。
請注意:任意控制源基本元素自身不能提供時間步長控制,這將導致仿真器錯過輸出函數的快速轉換。可採用兩個應付措施:
l 設置最大時間步長屬性TMAX爲一個足夠小的值
l 在信號發生器的輸出端連接兩個串聯的背靠背二極管。在這種情況下,因爲二極管的存在,會在這部分器件中引入時間步長控制機制,而不會改變電路的功能效果。
我們希望在後續的發佈版本中實現適宜的時間步長控制,儘管這些使用Berkeley代碼的模型確實很難實現。(陳斌文注:Berkeley,伯克利,提出Spice模型的那位教授,這是我的理解,不知道是否正確)
1.3.13 模擬二極管模型 – DIODE
SPICE3F5二極管模型可用於所有類型的二極管的建模工作,包括Zerner與Varactor類型。
二極管模型有以下參數:
屬性 |
缺省值 |
描述 |
OFF |
- |
初始關斷 |
IC |
- |
初始電壓 |
TEMP |
27 |
器件溫度 |
AREA |
1 |
面積因子 |
IS |
1e-014 |
飽和電流 |
RS |
0 |
電阻值 |
N |
1 |
發射係數 |
TT |
0 |
渡越時間 (陳斌文注:擴散電容 CT=TT(dIfwd/dVA)=TT*Gd) |
CJO |
0 |
零偏勢壘電容 |
VJ |
1 |
勢壘內建電勢 |
M |
0.5 |
結兩側雜質分佈情況有關的係數 (陳斌文注:反偏情況下,勢壘電容:CD=Cj0(1-VA/VJ)-M) |
EG |
1.11 |
激活能量 |
XTI |
3 |
飽和電流溫度指數 |
KF |
0 |
噪聲係數 |
AF |
1 |
噪聲指數 |
FC |
0.5 |
勢壘電容正偏係數 (陳斌文注:正偏情況下,勢壘電容: CD=Cj0(1-FC)-(1+M)(1-FC(1+M)+MVA/VJ)) |
BV |
¥ |
膝點電壓 (陳斌文注:當反向電壓達到擊穿電壓時,流過二極管的反向電流除了由基本電流方程決定的反向電流外,還有以下由擊穿機理決定的電流項: IDBV=IBV[exp(-q(VA+BV)/NBVkt)-1]) |
IBV |
1mA |
膝點電流 |
TNOM |
27 |
溫度測量參數 |
二極管的直流指標由參數IS與N決定,包括體串聯電阻RS。充電效果由渡越時間TT及一個由參數CJO、VJ與M所確定的非線性耗散電容(勢壘電容)來描述。能量參數EG、飽和電流溫度指數XTI可確定飽和電流溫度,在這些參數中的溫度均可測量。反向擊穿效果(如Zener)可用反向電流指數函數建模,其中包括BV與IBV參數(這兩個參數均爲正值)。
IS、RS與CJO與面積因子相關。