電路設計與模擬系統
-
使用者可以透過 "模擬系統" 輕鬆的觀察“電路行為”的“即時狀態”。
是因為“電子電路設計與模擬系統”整合了原理圖編輯器,模擬引擎,波形顯示等功能, -
"模擬系統" 通常也會涵蓋“擴充套件模型”以及電子“元器件庫”:
- "擴充套件模型"主要包括IC(積體電路)專用的"電晶體模型", 如BSIM.
- "元器件庫"提供很多"通用元器件". 如電阻, 電容, 電感, 變壓器 和 使用者定義模型(如受控電流源,電壓源).
-
"模擬系統" 此外還提供了 Verilog-A 或 VHDL-AMS 的一些模型,
"PCB設計"還要求"專用模型",如"線路走線的"傳輸線模型"和 "IBIS模型"。 -
本章透過AD軟體對“電子電路設計與模擬”進行介紹。
- AD 軟體提供"混合訊號電路"的模擬工具, 可在"原理圖"中提供完善的"混合訊號電路"模擬功能.
- 在“電路原理圖設計階段”實現對混合(數字/模擬)訊號電路的功能設計與模擬.
配合簡單易用的“引數配置”視窗,完成基於"時序、離散度、訊雜比 等多種資料的分析. - AD軟體的"電路模擬"是"混合模式模擬器",可用於對 模擬器件和數字器件的電路分析.
"模擬器""採用由GTRI開發的增強版事件驅動型XSpice模擬模型,
該模型是基於 Berkeley Spice3程式碼, 與 Spice3f5 完全相容。- Spice3f5 的:
- “模擬器件模型”包括: 傳輸線, 開關, 電阻, 電容, 電感, 電壓源, 電流源;
- “5種通用半導體器件模型”包括: Diodes, BJTs, JFET, MESFETs, MOSFETs.
- XSpice 的
- “模擬器件模型”是針對一些可能會影響到模擬效率的、冗長的,
無需開發區域性電路而設計的 "非線性器件"特性模型程式碼。
包括特殊功能函式, 如"gain", "磁滯效應", "限電壓及限電流", S域傳輸函式精確度等函式。 - “數字器件模型”是用數字 SimCode語言 編寫的.
- SimCode語言是由"事件驅動型XSpice模型"擴充套件而來, 源於標準的XSpice程式碼模型。
專用於"模擬數字器件"的特殊描述語言。是一種類C語言, 實現對數字器件的行為及特徵的描述. - SimCode語言的"模擬檔案"採用ASCII字元, 並儲存成 .txt 檔案, 編譯後生成 *.scb 模型檔案,
可以將多個"數字器件模型"寫在同一個SimCode檔案.
- SimCode語言是由"事件驅動型XSpice模型"擴充套件而來, 源於標準的XSpice程式碼模型。
- “區域性電路模型”是指"更復雜的器件", 如用“區域性電路語法”描述的操作運放、時鐘、晶體等,
每個"區域性電路"都儲存在 *.ckt 檔案,並在"模型名稱"的前面加上大寫的X。
- “模擬器件模型”是針對一些可能會影響到模擬效率的、冗長的,
- Spice3f5 的:
電路系統的 Spice 描述
-
Spice軟體主要用於電子電路系統的設計、分析和模擬,
例 IC(積體電路)、類比電路、數位電路、混合(數字和模擬)電路、電源電路等.
Spice於1957年推出正式實用化版本,並在1988年被定為美國國家工業標準。
Spice採用完全開放的政策, 使用者可以按自己的需要進行修改,實用性好,
所以迅速得到推廣,已被移植到多個作業系統平臺。 -
Spice的“netlist(網表)格式”成為了通常“類比電路和電晶體集電路”描述的標準。
Spice 軟體建立“半導體器件模型”時,使用者只需選定“模型級別”並給出“合適的引數”即可。
Spice的輸入一般有兩種形式:
一種是netlist(網表,文字),另一種是“電路原理圖”形式。
“電路原理圖”形式更簡單、直觀。既可生成新的“電路原理圖”檔案,
又可以開啟已有的“電路原理圖”檔案. -
Spice Model(模型)由兩部分組成: Model Equations(模型方程式) 和 Model Parameters(模型引數).
Model Equations的提供, 可以把Spice Model(模型)與 模擬器的演算法 非常緊密的連線起來,
能夠獲得更好的分析效率和分析結果。 -
Spice模型已廣泛應用於電子電路設計, 可對電路進行:
- 非線性直流分析,
- 非線性瞬態分析,
- 和線性交流分析.
被分析電路的元器件, 可包括:
傳輸線, 電阻, 電容, 電感, 互感, 獨立電壓源, 獨立電流源,
各種線性受控源, 以及有源半導體器件. -
Spice軟體為模擬“電路系統”,必須先建立"元器件"的"數學模擬模型".
- 為其所支援的各種“元器件”先增加對應的“數學模型”來描述他們.
也就是用 "計算機運算(模擬)" 的 "計算公式" 來表示 "元器件的靜態與動態"。 - 理想"元器件模型"應既能正確反映"其電學特性", 又適合"在計算機上數值求解"。
一般, 器件模型精度越高, 模型本身越複雜, 要求的模型引數個數越多,
這時,計算所佔記憶體量也越大, 計算時間也會增加. - 因此“元器件模型”的“複雜程度”要根據實際需要決定.
是因為,積體電路往往包含數量巨大的元器件,
元器件模型“複雜度”的少許增加就會使計算時間成倍增長。
反之,模型過於粗糙,會導致分析結果不可靠。 - 如果需要對元器件進行物理模型研究或進行單管設計,
一般採用精度和複雜度較高的模型,
甚至採用以求解半導體器件基本方程為手段的器件模擬方法.
“二維準靜態數值模擬”是這種方法的代表,
透過求解"泊松方程"、"電流連續性方程"等基本方程,結合精確的邊界條件和幾何、工藝引數,
可以非常準確的給出元器件的“電學特性”。 - 一般的電路分析,應儘可能採用能滿足一定精度要求的簡單模型。
- 電路模擬的精度, 除取決於元器件模型外, 還直接依賴於所給定的“模型引數數值的精度”.
因此希望“元器件模型”的“各種引數”有明確的物理意義,與其“工藝設計引數”有直接聯絡,
或用某種測試手段能測試出來。
- 為其所支援的各種“元器件”先增加對應的“數學模型”來描述他們.
Spice 的設計流程
Spice 描述一個完整的電路結構
下圖是示例的“單個電晶體放大電路”的“完整結構”(用AD軟體繪製)。
觀察上圖的“單個電晶體放大電路”原理圖可以看出:
- 一個電路的完整結構, 應該包含“電子元器件” 和 “電路結構(用於連線電子元器件)”
- Vin、Vout、Vdc、Vb、Vc 和 Ve, 這些標號在“電子設計的角度”被稱為 network(網路),
network(網路)用來標識電子線路“原理級”的“每個元器件的位置”。
這種 “network(網路)表示方法”是 EDA(電子設計自動化)軟體 標識"原理"電路結構的常用方法. - 綜上, 只要給定"電子元器件"、"電源"、激勵源", 並且標記了每個電子元器件的"原理位置"。
就能“實現(或還原)”一個“完整”的“電路結構”。
在AD軟體開啟 “Simulate -> Generate NetList”選單,為上圖“單個電晶體放大電路”原理圖生成如下圖所示的Spice NetList(網表)檔案:
下面對上圖的NetList(網表)檔案進行分析:
-
標題行、註釋行和結束行
- 標題行
該行必須是輸入檔案的第一行( 而且開頭不能有空格與註釋符號) ,如Spice_exp1
- 註釋行
註釋行以 "" 號開始,可以有多行,每行都必須以 "" 號開始 例如:- SPICE NetList generated by Advanced Sim server on 2023/1/11 11:17:18
- Schematic NetList:
- 結束行
.END
用於標識輸入檔案的結束,它必須是輸入檔案的最後一行(其後最好沒有"空白字元")
- 標題行
-
元器件模型描述
器件模型的通用格式為:.MODEL MNAME TYPE(PNAME1 = PVAL1 PNAME2 = PVAL2 ... ) ,例如下行:
.MODEL 2N3904 NPN(IS=1.4E-14 BF=300 VAF=100 IKF=0.025 ISE=3E-13
BR=7.5 RC=2.4 CJE=4.5E-12 TF=4E-10 CJC=3.5E-12 TR=2.1E-8 XTB=1.5 KF=9E-16 )- 對一些引數較多的電子元器件, 分配唯一的模型名稱, 使用唯一的 *.MODEL 註釋行進行說明.
- MNAME 表示“元器件模型”的“名稱”
- TYPE 表示“元器件模型”的“型別”,Spice包括15種(元器件模型的型別), 如下圖所示:
-
分電路描述
- “分電路描述”可以定義由 Spice元器件 構成的“分電路”, 透過類似於“呼叫”器件模型的方法進行“引用”。
- 由輸入檔案“獨立的行”定義由“一組元器件”構成的“分電路”, 然後Spice程式自動在“引用”分電路的地方插入該“組元器件”。
- 對“分電路”的“大小和複雜度”沒有限制,並且“分電路”還可以“層層巢狀”包含其他的“分電路”。