IBIS模型: 如何建立IBIS模型

在前面的文章裡,我們簡述了IBIS模型內所需有的資料。這些資料多是以IV, VT, IT的波型表方式呈現;所以所謂的為IBIS建立模型,即是激發原來的緩沖器設計並進行仿真、最後再將仿真的結果進一步處理以合乎IBIS語法的模型表示出來。下面簡單列出了為IBIS建模所需進行的幾道程序:

  • 搜集資料: 即獲得原緩沖器之設計資訊及相關操作係數;
  • 產生電路: 為所用的仿真器產生模擬電路以適當激發緩沖器來運作;
  • 進行仿真: 仿真上一步所產生的各種擬電路;
  • 分析結果: 後罝處理仿真的結果, 並加以運算或轉換;
  • 產生模型: 產生合乎IBIS語法的模型;
  • 語法檢查: 用IBIS公用的程式(Golden Parser)來檢查產生的IBIS模型;
  • 驗證模型: 為建立之IBIS模型產生相同操作情汜的電路並進行仿真;
  • 產生報告: 替驗證的結果做出量化的報告,為模型加上如生廠商等的資訊等。
SPISim BPro's 的IBIS建模流程

SPISim BPro’s 的IBIS建模流程

 

以下我們再對上列的步驟做進一步的說明:

  • 搜集資料: 以下面圖中的緩沖器設計為例,欲為其建立模型,首先我們先要從設計工程師那裡取得詳細的設計檔案,其次, 我們也需要拿到這個設計生產時的製程係數:比如說是用那個製程(Process), 理想的供電電壓是多少(Voltage),以及預設的操作環境溫度等(Temperature), 這些參數一般統稱為(PVT係數)。最後,我們還需要知道這設計正常運作時端點該如何連接? 也就是說那個節點應該的偏壓是多少。當代的緩沖器設計常有許多控制腳位(Control Legs), 藉由不同腳位的通路與否,可決定了這個設計的諸如輸出電流強度及速度等的效能。以上資料缺一不可。都完備之後即可進行下一步:產生適當的電路以對激發緩沖器並為其進行仿真。
緩沖器的設計及相關製程資訊

緩沖器的設計及相關製程資訊

 

  • 產生電路: 在這個步驟,我們需要產生各種電路以便能對其結果萃取出所需的IV/VT/IT資料波型。如之前所述:不同類型的緩沖器有不同的資料表需求,以下就為所需資料緩沖器需被激發運作的方式做一簡述:
    • IV for PU: 緩沖器需被致能(enable), 而後令其輸出邏輯1的高態,在輸出端以 -Vcc ~ 2Vcc進行掃描以獲得電流輸出/入資訊;
    • IV for PD: 緩沖器需被致能(enable), 而後令其輸出邏輯0的低態,在輸出端以 -Vcc ~ 2Vcc進行掃描以獲得電流輸出/入資訊;
    • IV for PC: 緩沖器需被放在高電阻態(High Z), 而後令其輸出邏輯1的高態,在輸出端以 -Vcc ~ 2Vcc進行掃描以獲得電流輸出/入資訊
    • IV for GC: 緩沖器需被放在高電阻態(High Z), 而後令其輸出邏輯0的低態,在輸出端以 -Vcc ~ 2Vcc進行掃描以獲得電流輸出/入資訊;
    • ISSO PU: 在理想供電點及緩沖器上拉端口間接一電壓,電壓值自-Vcc~Vcc進行掃描,同時在輸出端量測輸出/入的電流資訊。這個設置模擬了緩沖器在非理想供電電壓的情況下,輸出電流的變化情形。(Voltage Droop)
    • ISSO PD: 在理想接地點及緩沖器下端口間接一電壓,電壓值自-Vcc~Vcc進行掃描,同時在輸出端量測輸出/入的電流資訊。這個設置模擬了緩沖器在非理想接地的情況下,輸出電流的變化情形。(Ground Bounce)
    • VT for rising/falling waveform: 緩沖器的輸出端需連上測試電阻及電壓等的電路,以合乎實際情形(如100ps的上升時間)的數位信號輸入, 同時在輸出端量測瞬態的電壓波形。這種電路應對不同的測試負載情況再做一次。這兩組的測試情況應足以涵蓋了實際運作情況的操作範圍。
    • IT for composite current: 在緩沖器的上拉端口接一零電壓差的電壓源、用以監測流過的電流。在如同VT電路的測試負載運作時,量測並記錄這電流值。基本上IT 和VT的電路分析可在同一次仿真中同時進行。

BPro_ISSO

IBISIT

 

  • 進行仿真: 以上所產生的電路可分別放在不同的檔案…每個檔案只針對一個不同的資料仿宜需求, 抑或是它們都放在同一個檔案裡, 再用如HSpice裡的.alter依序進行仿真。前者的好處是不同的檔案可在同一機器上的不同執行緒裡、或是不同機器上同時進行仿真以結省建模時間。有些緩沖器的設計需含有時脈(Clock)的輸入, 在這種情況下穩態的掃描(DC Sweep)則不可得, 而得透過如假瞬態分析的方式才能得到結果。這分析技巧也套用在一些不易在DC仿真收斂的設計。

    BPro 產生的電路檔

    BPro 產生的電路檔

 

  • 分析結果: 這一步所要做的是對仿真結果讀出及計算。比如說要將無法剔除、一直都會有的PC/GC逆向偏壓時漏電電流自PU/PD電流裡減去, 以及將PU/PC的結果轉換為對VCC而非對地等等。 若是緩沖器還含有 on-die termination, 則PC/GC仿真所得的電流將不容忽略,而得進行更複雜的[如此所述]的運算。

 

  • 產生模型: 有了結果後,便是將其轉換成合乎IBIS模型的語法並輸出成檔案了。 為了使模型準確而精簡, 優化的程序常是不可或缺的。優化的需求在於仿真的時域結果常包含了上千甚至是上萬個資料點,但IBIS V3.2的規格只準許運用100個點。即便是IBIS V5.0 後準許用更多個點數,也因為Composite Current常是非常波動而不平緩的, 所以仍需要對現有資料點分析以選用最佳的點來表示波型。其次, 在IBIS的資料表裡TYP/MIN/MAX的各個欄位都有同樣的時間點(同一行表同一時間點), 這更曾加了優化的需求及難度。因為優化的程序需同時考量到三組波型資料的取捨。
BPro's 的演算法可優化並以最佳100/1000點來建模

BPro’s 的演算法可優化並以最佳100/1000點來建模

 

  • 語法檢查: 有了IBIS模型後,便需以IBIS委員會公開發佈的語法檢查器(Golden Parser)來檢查。除了一般語法外,它也會偵測可能的穩態電壓誤差。當誤差值大過容許值時,警告便變成了錯誤…一般業界的仿真器是不會對含有錯誤的IBIS模型進行分析仿真的。所以根除錯誤及了解並儘量減少警告的標示便是極重要的工作。
BPro 用 golden parser檢查語法等的錯誤

BPro 用 golden parser檢查語法等的錯誤

 

  • 驗證模型: 有了合乎語法的模型,下一步是為其建立如原緩沖器相同的測試負載情況下的電路來進行仿真。一個好的IBIS模型應是準確、精簡、且運作迅速的。所以這些電路應跑得非常快。當有了結果後就可先以視覺上將模型及原設計在同一測試負載情況下的結果一同比較。一般信號輸入到輸出間的延遲是不能由IBIS模型的所重建出來的。所以如果除經果些許的時間位移外,兩者的上升及下降波形都很近似、而且穩態的(高/低)電壓也都相符,則這就是一個可接受的IBIS模型。

 

  • 產生報告: 替驗證的結果做出量化的報告也常是建模標準之一, 以下的兩份資料已為量化的標準做了一些規範:IBIS accuracy handbook and quality spec. 對於圖形驗證上, 一種品質因數(Figure of merits)常被用來表示所建出模形和原設計在同一負載時輸出波形的相似度。
BPro's 視覺上的檢查及品質因數報告

BPro’s 視覺上的檢查及品質因數報告

以上我們簡單敍述了欲為緩沖器建立IBIS模型所需經過的程序。所謂”魔鬼藏在細節裡”, 很多細節之處雖是值得深入探討、但已在本篇文章的範圍之外。實務上來說, 以人工手動的方式來建立IBIS模型雖是可以做得到、但往往是曠日費時又易生錯誤。這也就是為什麼我們SPISim 使必信科技研發BPro模組來簡化這項建模工作的原因。

IBIS模型: IBIS模型的資料在仿真時是如何被運用的

*緩沖器模型:IBIS模型是如何組成的
IBISType

IBIS規格裡定義了不同類型的緩沖器,不同類型對於模型裡的構成資料即有不同的要求。一般而言,IBIS模型一般有下列的模型資料/對應表:

  • 環境設置:及這模型建模的環境為何, 一般包括了理想電壓及操作溫度的資訊等。
  • 負載情況:如C_COMP:伴隨電容及各截取各瞬態波型時緩沖器的測試負載等等。
  • I/V:電源/電壓的穩態曲線,通常包括了Pull-up(PU):上拉穩態曲線、Pull-down(PD):下拉穩態曲線、GND Clamp (GC):地箝位曲線及Power Clamp(PC): 電源箝位曲線等。這些曲線可視為對上拉下拉電路通道上非線性電阻的描述。
    要注意的是這些曲線的掃描範圍在規格上是要求要由-Vcc至2Vcc (Vcc是理想的供電電壓), 之所以如此是因為在無耗損傳輸的情況下,若接收端因完全開路或完全閟路而造成全反射,則全反射的Vcc振幅再加在原0~Vcc的工作範圍就會有-Vcc至2Vcc間的可能。另一要注意的是對於上拉型電路、如PU和PC, 其電壓波形相對應是是理想電壓Vcc值而非對地。也就是說:在這些波形裡的V=0實際上是V=0 to Vcc即V=Vcc的。有時在除錯的情況下,要把這值轉換過來才不易出錯。SPISim IBIS模組BPro的模型查驗界面就有直接將對應Vcc轉成Vss/Gnd的按鈕可使用。IBISPUPD
    IBISPCGC
  • ISSO PU/PD:這曲線描述了在非理想供應電壓及接地電壓情況時,緩沖器輸出電流的變化。當分析電路含有電源供應電路(Power delivery network)時,必需要有這些資訊才能對電源完整性的影響做出評估。一般而言,當供電端電壓下降或接地端電壓上升時, 橫跨場效體的端點電壓差會減少而使的輸出強度變弱,這即使所謂的閘道調變效應(Gate modulation effect);所以ISSO PU/PD定義了端點電壓在非理想值時,輸出有效電流的變化。IBISVT
  • V/T:這曲線描述了緩沖器切換後瞬態的輸出電壓;在不同的測試設置中(不同的外接測試阻抗及測試電壓),所產生節VT波形會不同;在稍後會細述的運作過理論可看到,一般的IBIS緩沖器應都至少含有兩組在不同測試設置下所產生的VT波形。這些測試情況需涵括了在現實情況下這被建構的IBIS模型會運作的環境。IBISIT
  • I/T:這曲線描述了緩沖器切換後瞬態的取用電流;亦是IBIS5.0(含)之後才有的關鍵字。這波形裡的橫軸的時域變量和上面的VT裡的時域是同一時間點。也就是說, 這IT曲線的資料用以在VT波形裡的同一瞬間點自電源拉出相對應的電流。這”組合電流”(IBIS關鍵字是Composite Current)大致上包含了下面幾種電流成分(詳細請見IBIS Spec.):旁路電流、前級驅動電流、切換電流及端點阻抗電流。

* IBIS模型是如何運作的:
那這些IBIS模型裡IV/IT/VT的波形資訊又是如何在仿真器裡運用的呢? 為簡化起見, 讓我們先不管靜電保護電路(ESD)的PC/GC電路部份,它們在大多數的操作情形都是在反向偏壓區而有極小的漏電電流。對於主要的上拉(PU)及下拉(PD)電路而言,我們可以把它們看做是非線性電阻; 就好比是場效體的P/N通道般,其電阻值隨著端電電壓值而改變。這兩組電路之相互同時運作,便決定了在不同輸出負載情況下的緩沖器的瞬態反應 VT及IT。
IBISKuKd0
在瞬態的上升期間,上拉電路PU可視為由完全斷路變成到完全通路,而下拉電路是由完全通路而變成完全斷路。由於接到地線間的通路成為斷路而造成輸出電壓的升高到邏輯1態。瞬態的下降期間則是相反地運作。於是吾人可定義一”切換係數(Ku(t), Kd(t))”…來相乘到對應的PU/PD電流的輸出。這切換係數的X變數是時域的…即像VT/IT裡的時域變數般。Ku(t)=1表示PU完全通路。反之,Kd(t)=0表示PD完全斷路。這Ku(t)及Kd(t)的組合即可用以說明VT/IT的相對應變化情形。

為著這Ku(t)及Kd(t)的兩個變數,我們也需要有兩組方程式才能對其求解。假設IBIS模型裡有至少兩組的VT波形及其負載測試情況, 則我們恰用這兩組資料來對Ku(t)及Kd(t)進行求解。因為Ku(t)及Kd(t)只和緩沖器裡的場效體切換的經過時間有關、而和其負載無關,所以我們恰可用兩組方程來得到Ku(t)及Kd(t)的真解。這也就是為什麼一般的IBIS模型裡需要至少有兩組的VT波形原因了。
IBISKuKd1

實務上而言,若欲求兩組波形而不可得,則仿真器也可做另一假設:即在每一時間點都滿足Ku(t) + Kd(t) = 1。大體上而言,這組假設在緩沖器的穩態高電位或穩態低電位輸出時是成立的,但在其間的瞬態轉換期間則未必。另一種可能是仿真器也可用IBIS模型裡的斜率(Ramp rate)資料來形成假設的上升/下降VT波形, 以達到能對切換係數求解的目的。
IBISKuKd2
在這架構之下,為求精確起見,所有有關的支流電流最後也都要加入方程式裡,如此解得的切換係數才算精確。這些後來才加上的支流電流包括了常在反向偏壓的ESD電路PC/GC,以及會通過伴隨電容C_COMP的電流等等。比如我們可用I=C_Comp * dV/dt來算出流過伴隨電容的電流且將其自總輸出電流中減去,才不會在日後模型的仿真時造成重算(double counting)的情形。

IBISCComp
最後, 在IBIS 5.0之後的、含電源完整性資訊的、IBIS模型而言,另一組瞬態端點電壓相關的係數也要再加上去。如此,因為閘道調變效應而使得緩沖器輸出變弱的因素才能被列入考量。

以上所簡述的操作細節,讀者若有興趣,可參閱下列的原學術論文:

IBIS模型: 什麼是IBIS(輸入輸出緩沖器信息標準)

IBISLogo
IBIS是 I/O Buffer Information Specification的縮寫,中文即譯為輸入輸出緩沖器信息標準。它是在上世紀末之90年代初為提倡可為不同仿真器或分析工具所接受運作的模型而制定出來的標準。時至今日它仍不斷地演化而時有更新的制定出現。茲在下面列出其規格上的重大進程:

  • V3.2: 利用不同的電流/電壓曲線及電壓/時間曲線來建構出緩沖器在穩態及瞬態的特性。這一規格的模型以供電電壓及接地電壓是理想狀態為前提,故僅能做為信號整合性上的仿真分析所用。
  • V4.0:這一版本首度將其它也常見的建模語言,如Verilog-A, VHDL及Spice等也列入模型的成分之一, 以便能在IBIS標準關鍵字不易更新改變的限制之下亦能有效地為特別的緩沖器進行建模。
  • V5.0:這個版本加入了ISSO PU/PD以為在非理想供電或接地電壓的情況下、諸如由供電網路(Power delivery network)所造成的Voltage droop或Ground bounce情況下、亦能正確地描述緩沖器的行為。其亦包括了[Composite Current]關鍵字以對緩沖器在切換間電流與當下的時刻做出連結。這一版本的模型可以同為信號及電源整合性(SI/PI)共同分析所使用。
  • V5.1:這個版本加入了AMI (Algorithmic Modeling Interface, 即演算法建模界面),以為在單純類比緩沖器之外加上等化器等的建模需求。透過常是用C/C++語言所建構之AMI模型,可和原類別緩沖器為主的模型搭配而在通信渠道做Latch to latch的高速仿真運算以得到誤碼率(Bit error rate)類之參數。最常用在SerDes (串化/解串化器)之界面上。也由於建模語言的低階化、以及建模前對等化器EQ運作細節了解的需求,使得建模的門坎及難度都相對應地增加了。

IBISEvolve

 

在我們談到IBIS這個語詞時,也需同時地對IBIS規格, IBIS檔案以及IBIS模型三者的分別做一簡單說明:

  • IBIS規格:是由IBIS標準委員會經會員投票制定出的規格。廣義上而言ICM (InterConnect Modeling Spec),即連接器建模標準,亦是由這委員會制定出而同屬IBIS規格的一部分。ICM定義出了通信渠道間所有被動性連接元件的建模標準。這些元件包括了如傳輸纜線(Cable)、連接器(Connector)及印刷電路版(PCB)之間的繞線等。之前的EBD (Electric board description)標準即為ICM所取代。
  • IBSI檔案:IBSI檔案是一描述某晶片廠商所生產的某一或更多晶片模型的檔案。一如一般市面上的晶片封裝內含不同的針腳(Pin)…每一針腳內連到一同的電路輸入;IBSI檔案在檔案前面也有這製造廠商等的資訊,而後是晶片封裝的不同針解及其與其相連之緩沖器模型名稱,最後才是緩沖器單獨的模型資料。故一個IBSI檔案可內含有許多的IBSI模型,也可含有如封裝模型(Package model)之相關資訊。
  • IBIS模型:這即是我們一般所言之緩沖器模型;IBIS規格定出十數種不同類的緩沖器模型,每一種類別有其所必需要有的模型資料。一般來說,這些資料包含了如:電流/電壓(穩態)、電壓/瞬態、電流/瞬態等的對應表格;也包括了這個模型在建模時的運作及負載環境設置等等。如果模型在仿真時超出了這些當初建模時所採用的設計範圍,則仿真出來的效果也就未必準確了。
IBIS Files vs Models

IBIS 檔案 vs 模型

Viewing model data of an IBIS file in SPIBPro

在SPIBPro中查看一IBIS檔案內不同模型的波形資料

IBIS模型: 什麼需要用緩沖器模型及為什麼是IBIS (輸入輸出緩沖器信息標準)

在我們開始探討緩沖器模型的細節前,得先談一下為什麼它值得一談:

緩沖器位在通信渠道(communication channel)的兩端:通信渠道上多是由被動元件如傳輸線(Transmission line)、導孔(Via)及連接器(connector)所組成,而在兩端做有源的主動發送及接收的即是緩沖器了。

Channel

若您是晶片設計師,場效體尺寸及製程間摻雜質(doping)的濃度可能就影響了設計出電路的工作效能;這些效能可能以輸入出電流強度、阻抗及上升下降速率等時間性的參數來表示。

Transistor and process info. for a buffer design

緩沖器內部之設計細節及相關製程影響其外在的效能表現

但若您是系統設計師或完整性分析師,則您所顧慮的可能是更宏觀的設計:諸如佈線、端口阻抗、元件放置及佈局等等。則之前所述那些晶片設計師所關心的細節對您來說可能就顯得無關宏旨。對您來說,那些晶片就像是現成的元件,您並不在意這些緩沖器是怎麼設計出來的,只要緩沖器效能可以達到您規格的需求就足夠了。

所以從這兩者的角度來看,能有一個簡易描率緩沖器規格及效能的模型就足以做為溝通應用的橋樑。於是一能描述緩沖器效能的模型便有存在的需求。

System level design use buffer as component.

系統設計師視緩沖器為一現成的元件而不管其內部設計細節

 

一般而言,一緩沖器模型有幾項評量的標準:

  • 是否精確:這是建模最基本的需求,一個不準的模型毫無用武之地。所謂精確,一般需在原設計的5%之內。
  • 是否能保護智財:做為一晶片設計廠商,發佈模型以供使用原是為讓客戶能更方便地應用自己的設計,但這是以決不能危急設計的智慧財產權為前提;除了原設計的架構外,製程的細節也通常在保護之列。
  • 仿真時的效率:從系統設計師的角度來看,模型在仿真上也有效率上的需求。一個系統上常包含了上百甚至上千個緩沖器,它們常必需有較原設計快上100~1000倍的速度才堪於系統仿真分析上所使用。
  • 建模是否容易:對系統建模工程師來說, 如果建模程序大費周章,則暗喻著其中的過能很有可能出錯而有精確上的顧慮。一般而言,能做以黑箱為基礎地建模。。。 即建模者不需知道緩沖器內部的設計細節而只要能就界面上的端口做激發以獲得數據來建模。。是較佳的解決方案。
  • 模型是否廣為接受:建出的模型需能在數個業界採用的仿真器、如HSpice 或ADS上運行。若某種建模只能在特定的仿真器上跑,則長遠來看容易有精確上的問題而不為人知,而且在建模的過程上也能急就章而不能受到公正的檢驗。

由於以上的考慮常不能面面俱到,有些人便以仿真器內建的加密模式為原設計編碼建模(Encrypted Model), 這類的模型不僅只能在單一仿真器上運行,其效率也常只與原電路設計相當而沒有加速的效果,故若非無技可失,筆者並不建議採用這種方式來建模。

時至今日,業界已推出數種標準的建模規格:如IBIS (輸入輸出緩沖器信息標準)及Verilog-A等, 其中IBIS 又較為廣泛採用。IBIS已是ANSI(美國國家標準機構)認可之規格,其詳細資訊可在此取得