差分IBIS建模流程:概觀

我們之前已寫過一些有關IBIS的建模流程的貼文,其中所提重心是針對單端點(single-ended)放大器的建模;主要的原因有下列幾點:

  • 單端點放大器建模流程較簡單直接、在才開始學建模的情形下較易上手;
  • 假性(pseudo)差分放大器是直接可以用兩個單端點放大器組合起來的;
  • 許多半或全差分放大器(half/true differential)即便是用假性差分建模流程來進行結果精確性也未必會較差[參考]
  • 完全的半/全差分放大器建模牽涉到非能線性進行的步驟而麻煩許多。

上個月在台灣辦的講習裡,有數位同業問到CML(current mode logic)的建模。。。其便是屬於半/全差分放大器的範疇;也由於現在很多的IO界面都是走SERDES(如USB, SAGA, PCIe等等),再加上已介紹過單端放大器建模流程後,也實也應繼續往下走︔故在這篇的貼文裡,我們便要談談差分放大器的建模流程,並在下篇的文章裡,簡介其中分析細節及這些設計理念在我們的建模工具SPIBPro裡是如何體現的。

要說明的是這兩篇的內容也係為年底要在亞洲IBIS Summit發表的文章所準備,相關簡報檔會在會議之後再於此更新並發佈。又這篇簡介裡的內容多係由IBIS cookbook總結而來,其可在IBIS官網上下載。

差分緩衝/放大器之分類:

一般來說差分大器可分為下列幾類:

  • 假性差分 (pseudo differential): 即如下圖中最右所示;這種差分放大器在P及N電路間是完全互相獨立而沒有任何藕合的︔兩個部分的電路可各自獨立運作而不互相影響。
  • 半差分 (half differential): 即如下圖圖中所示;其上拉端為互相獨立,唯下接到地的部份同經過一個電流源,所以輸出電流是共享的而會相互影響。
  • 全差分 (true differential): 即如下圖圖左所示;其不論是上拉或是下接到地的路徑都相互藕合而彼此影響。上接部份用的是電流鏡的設計(current mirror), 下接到地的部份則共享同一電流源。

對於假性差分而言,其可用兩個獨立的單端點放大器來描述︔這兩個放大器可以是不同的模型、也可以是由同一模型的兩個Instances再由反相的輸入所組成。在IBIS建模上、只要單獨將那單端點放大器建模完成後,再在IBIS檔案裡以”[Diff Pin]”的關鍵字表述那兩個針腳有差分關係即可。如下所示:

上面的範例描述的是pin 2 及pin 3互為差分,而pin 6 與pin 5也互為差分信號;當然在IBIS檔案裡的其它地方這四個針腳所接的(單端點)模型也需有所定義及描述。

半/全差分放大器:

對於這兩類的差分放大器、因其P及N輸出端間有程度不同的藕合性,故所需以描述的內容就不單單是上面[Diff Pin]了(仍是需要的),一般來說有下面兩種描述方式:

  • Series: 為了描述P/N輸出間的藕合,在IBIS檔案裡有兩個地方必需加入相關內容。其一是用”[series pin mapping]“來描述在那兩個差分針腳間有藕合的情況︔然後再此藕合電路以Series Model的模型形態來表述:

如上所示:在用[Diff Pin]來描述針腳間互為差分之後,假設某對差分針腳之間有藕合的情況而必需用額外的電路來表述,則另需在[Series Pin Mapping]下來定義。而其模型(以上為例是R_SERIES_100)之model_type必需是series, 且也需依預定的IBIS格式表之。series模型內容非可自定之自由格式,其內容需為R/L/C/Series Current/Series MOSFET任一或更多的元件;至於其數值則是在建模流程間由仿真後處理的結果。Series Current 可以描述的是一維的IV曲線。。也就是非線性電阻;而Series MOSFET則可透過至多有一百個的表格來描述二維的表面取樣點。

  • External Model: 另一種描述差分放大器的方式是在外接模型裡完全自訂。在IBIS標準裡有下列四種模型態式可用以表述差分:

如其右方之說明所示,這些模型的內容需以其它語言:Spice, VHDL-AMS, Verilog-AMS, IBIS Spice Sub-circuits (IBIS ISS)來描述;也因為是用不同的語言,所以裡面倒底包括並沒有另外的限制。。。。建模者想用Spice, VHDL, Verilog等的語言寫什麼都可以。因為如此,IBIS在這裡的角色就只是外包裝(wrapper)而並沒有太大的可攜性的意義(相較於IBIS,不是每個仿真器都支援這些語言的)

如上圖所示,在一個外包裝的模型(名為VHDLAMS-DRV)之下內含有另一個以VHDL描述的差分模型;需強調的是模型內容雖可由建模者自行編寫定義,但其連接的端點(port)則需從在IBIS格式裡預先定義好的兩個或更多個關鍵字裡取用,且定義的順序也必需就是在VHDL/Verilog內等所用相對應的Terminal的順序︔這些VHDL/Verilog/IBIS ISS等檔案是外含而不包括在同一個IBIS檔案裡的。

建模流程:

前面一段所提第二法:即純[External Model]的模型表述因其內容全由建模者決定,故就流程上而言就沒有暨定的方式。在下面所討論的流程、係針對第一種模型表述方式、即Series/Series Model而言的,因為其有固定的格式及內容,故在如何算出這些數值的方法上就有值得深究的需要。

一般而言,由於這樣的差分放大器描述方式是利用series模型來專門描述P/N間藕合的情況,而除去這series電路後就必需是可單獨運作而互相獨立的部份,故在流程計算上以分別針對這兩個部份來作區別︔最後再用第一段所談到的幾個關鍵字將其在IBIS檔案裡組合起來。

針對上圖中”Driver”區塊的部分,因其就是等於除去藕合Series電路之後的單端點放大器,所以便如以往所提:所有PU/PD/PC/GC/VT等表格當存在時都依同方式提取出來,差別的地方是必需得在”能分離藕合電路影響”的情況下仿真轉出:

  • PU/PD: 如上圖裡右上方所示,需在P及N點的輸出接上電壓源分別做 -Vcc~2Vcc的掃描︔在後處理的過程中,一個主要的假設是當P/N兩點都在相同電壓時,series電路的部份是沒有任何電流經過的。也就是說:PN相同的電壓時的同模模式(common-mode)下,為掃描所接之電壓源對放大器所提供或取用的任何電流都是只為Driver區塊所用的,由於P/N兩電路的輸入互為反相,故這同模時的上拉及下拉電流也就等於是driver區塊的PU/PD IV對照表內容。由於我們做的是二維的掃描,除了同模的那一直線(對角線)之外都是屬於差模(即P/N輸出點電壓不相同)的情況,而在那些點量出的電流都同時包括了差模及同模的部份。由於我們已將同模的電流算出來了,故差模的電流也就等於是在那點量測值再將同點電壓時的同模電流減去︔對於整個掃出的二維平面而言,隔出的差模電流就等於是將同模電流減去後的垂直位移︔而後再要做的就是看以何種方式來描述這位移後的二維平面以便在做VT仿真時也能將其減去。
  • PC/GC: 在IBIS規格裡,箝位電路的電流並非必需要有的。唯有當放大器裡有這類不能透過輸入信號的高、低位準來將其關閉的部份時,流經這些部份的電流才需以IV的內容形式放在PC/GC的表格裡的。在以前單端點電路時,箝位ESD電路即屬於這部份︔對差分放大器而言,半差分形式放大器裡的上拉電路也是屬於無法被關閉的部份而需將其算入PC/GC的表格裡。仿真的情況則是將緩沖器置於非開非關的High-Z而後如以前方式做P/N同電壓的同模仿真︔而後此同模電流的部份在後處理後就被放在PC/GC表裡。至於差模電流的部份,因其也會被包含在PU/PD的差模電流裡而算在series模型裡。。series則是始終存在而無法被開關的,故也就無需另計分離出來也不會有被double count的顧慮。
  • C_Comp/C_Diff:

C_Die 電容的計算也是差分放大器建模裡較不同的地方;在單端點放大器建模時,C_Comp的值在後處理時算出來再放在IBIS模型裡即可,其並不會在VT之瞬態仿真裡所用到︔但在差分建模裡,C_Diff的部份便得事先算出來,且也加入series模型裡,然後再一起用於VT的仿真以便在瞬態裡的各點都能將series模型的影響來抵消。算出C_Diff的公式如上所示︔其內容可加在series model裡的c series的部份。

  • VT waveform: 差分放大器建模的VT仿真,除了原有被建模的放大器及相關激勵或偏壓的輸入外,也必需要有一個描述藕合情形的series model一起參與仿真︔而且這個加入的部份是為了取消同樣series model在模型裡的影響(以便轉出的VT表格係為獨立的Driver區塊所用),故電流流向需相反;這就是上上圖裡Idiff有負號的原因。如前所述,這個series model裡包括的資訊除了有屬於靜態IV掃描後消去同模電流的差模部份,也必需包括了已事先算出的C_Diff部份以便反應瞬態間series model的影響︔C_Diff部份自可以一電容值表示之,而靜態差分電流部份則可利用下列兩者方式之一來表述:
    • 用E/F/G/H等的受控電壓電流源來表示所建之二維差分電流內容。比如說用最小化MSE(mean squared error)的方式來以一二次式表示此二維表面,而後再用受控源的”Poly”語法來將此二次式的參數表示並以spice元件表示;
    • 決定適用的series element而後建出相對應的series model,此法的前提是仿真器需能支援這裡產生的series model而在VT仿真中運用。

之前的IBIS Summit已對上述部份有些範例及研究,比如說[這一篇]發表就很有代表性。

 由上面的探討,吾人可以發現差分放大器建模的流程是非線性的、也就是非可一氣呵成的︔主要的原因是在建立series model以表示靜態及瞬態的差分電流部分有很多可用人為來取捨的空間︔其次,得事先算出靜態I_Diff及C_Diff後才能繼續進行VT仿真也是和之前很不同的地方而必需依序進行的。這篇的貼文旨在描述差分模型的語法表示方式及大致的建模流程及概念︔下篇的貼文裡我們會談到更多的細節並看看這些設計理念如何落實於我們的建模工具SPIBPro裡。

Leave a Reply

Your email address will not be published. Required fields are marked *