SciTech-EECS-電設計- PCB設計-電路設計與模擬系統 + SPICE 模擬描述與模型

abaelhe發表於2024-07-17

電路設計與模擬系統

  1. 使用者可以透過 "模擬系統" 輕鬆的觀察“電路行為”的“即時狀態”。
    是因為“電子電路設計與模擬系統”整合了原理圖編輯器,模擬引擎,波形顯示等功能,

  2. "模擬系統" 通常也會涵蓋“擴充套件模型”以及電子“元器件庫”:

  • "擴充套件模型"主要包括IC(積體電路)專用的"電晶體模型", 如BSIM.
  • "元器件庫"提供很多"通用元器件". 如電阻, 電容, 電感, 變壓器 和 使用者定義模型(如受控電流源,電壓源).
  1. "模擬系統" 此外還提供了 Verilog-A 或 VHDL-AMS 的一些模型,
    "PCB設計"還要求"專用模型",如"線路走線的"傳輸線模型"和 "IBIS模型"。

  2. 本章透過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檔案.
        • 區域性電路模型”是指"更復雜的器件", 如用“區域性電路語法”描述的操作運放、時鐘、晶體等,
          每個"區域性電路"都儲存在 *.ckt 檔案,並在"模型名稱"的前面加上大寫的X。

電路系統的 Spice 描述

  1. Spice軟體主要用於電子電路系統的設計、分析和模擬,
    例 IC(積體電路)、類比電路、數位電路、混合(數字和模擬)電路、電源電路等.
    Spice於1957年推出正式實用化版本,並在1988年被定為美國國家工業標準。
    Spice採用完全開放的政策, 使用者可以按自己的需要進行修改,實用性好,
    所以迅速得到推廣,已被移植到多個作業系統平臺。

  2. Spice的“netlist(網表)格式”成為了通常“類比電路和電晶體集電路”描述的標準
    Spice 軟體建立“半導體器件模型”時,使用者只需選定“模型級別”並給出“合適的引數”即可。
    Spice的輸入一般有兩種形式:
    一種是netlist(網表,文字),另一種是“電路原理圖”形式。
    “電路原理圖”形式更簡單、直觀。既可生成新的“電路原理圖”檔案,
    又可以開啟已有的“電路原理圖”檔案.

  3. Spice Model(模型)由兩部分組成: Model Equations(模型方程式) 和 Model Parameters(模型引數).
    Model Equations的提供, 可以把Spice Model(模型)與 模擬器的演算法 非常緊密的連線起來,
    能夠獲得更好的分析效率和分析結果。

  4. Spice模型已廣泛應用於電子電路設計, 可對電路進行:

    • 非線性直流分析,
    • 非線性瞬態分析,
    • 和線性交流分析.

    被分析電路的元器件, 可包括:
    傳輸線, 電阻, 電容, 電感, 互感, 獨立電壓源, 獨立電流源,
    各種線性受控源, 以及有源半導體器件.

  5. Spice軟體為模擬“電路系統”,必須先建立"元器件"的"數學模擬模型".

    • 為其所支援的各種“元器件”先增加對應的“數學模型”來描述他們.
      也就是用 "計算機運算(模擬)" 的 "計算公式" 來表示 "元器件的靜態與動態"
    • 理想"元器件模型"應既能正確反映"其電學特性", 又適合"在計算機上數值求解"。
      一般, 器件模型精度越高, 模型本身越複雜, 要求的模型引數個數越多,
      這時,計算所佔記憶體量也越大, 計算時間也會增加.
    • 因此“元器件模型”的“複雜程度”要根據實際需要決定.
      是因為,積體電路往往包含數量巨大的元器件,
      元器件模型“複雜度”的少許增加就會使計算時間成倍增長。
      反之,模型過於粗糙,會導致分析結果不可靠。
    • 如果需要對元器件進行物理模型研究或進行單管設計,
      一般採用精度和複雜度較高的模型,
      甚至採用以求解半導體器件基本方程為手段的器件模擬方法.
      “二維準靜態數值模擬”是這種方法的代表,
      透過求解"泊松方程"、"電流連續性方程"等基本方程,結合精確的邊界條件和幾何、工藝引數,
      可以非常準確的給出元器件的“電學特性”。
    • 一般的電路分析,應儘可能採用能滿足一定精度要求的簡單模型。
    • 電路模擬的精度, 除取決於元器件模型外, 還直接依賴於所給定的“模型引數數值的精度”.
      因此希望“元器件模型”的“各種引數”有明確的物理意義,與其“工藝設計引數”有直接聯絡,
      或用某種測試手段能測試出來。

Spice 的設計流程

Spice 描述一個完整的電路結構

下圖是示例的“單個電晶體放大電路”的“完整結構”(用AD軟體繪製)。

觀察上圖的“單個電晶體放大電路”原理圖可以看出:

  1. 一個電路的完整結構, 應該包含“電子元器件” 和 “電路結構(用於連線電子元器件)”
  2. Vin、Vout、Vdc、Vb、Vc 和 Ve, 這些標號在“電子設計的角度”被稱為 network(網路)
    network(網路)用來標識電子線路“原理級”的“每個元器件的位置”
    這種 “network(網路)表示方法”是 EDA(電子設計自動化)軟體 標識"原理"電路結構的常用方法.
  3. 綜上, 只要給定"電子元器件"、"電源"、激勵源", 並且標記了每個電子元器件的"原理位置"
    就能“實現(或還原)”一個“完整”的“電路結構”
    在AD軟體開啟 “Simulate -> Generate NetList”選單,為上圖“單個電晶體放大電路”原理圖生成如下圖所示的Spice NetList(網表)檔案:

下面對上圖的NetList(網表)檔案進行分析:

  1. 標題行、註釋行和結束行

    • 標題行
      該行必須是輸入檔案的第一行( 而且開頭不能有空格與註釋符號) ,如

      Spice_exp1

    • 註釋行
      註釋行以 "" 號開始,可以有多行,每行都必須以 "" 號開始 例如:
      • SPICE NetList generated by Advanced Sim server on 2023/1/11 11:17:18
      • Schematic NetList:
    • 結束行

      .END
      用於標識輸入檔案的結束,它必須是輸入檔案的最後一行(其後最好沒有"空白字元")

  2. 元器件模型描述
    器件模型的通用格式為:

    .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種(元器件模型的型別), 如下圖所示:
  3. 分電路描述

    • “分電路描述”可以定義由 Spice元器件 構成的“分電路”, 透過類似於“呼叫”器件模型的方法進行“引用”。
    • 由輸入檔案“獨立的行”定義由“一組元器件”構成的“分電路”, 然後Spice程式自動在“引用”分電路的地方插入該“組元器件”。
    • 對“分電路”的“大小和複雜度”沒有限制,並且“分電路”還可以“層層巢狀”包含其他的“分電路”。

相關文章