IBIS 原理 SI 仿真


IBIS 模型簡介


IBIS(Input/Output Buffer Information Specification)模型是一種基於V/I曲線的對I/O BUFFER快速準確建模的方法,是反映芯片驅動和接收電氣特性的一種國際標準,它提供一種標準的文件格式來記錄如驅動源輸出阻抗、上升/下降時間及輸入 負載等參數,非常適合做振盪和串擾等高頻效應的計算與仿真。
       IBIS規範最初由一個被稱爲IBIS開放論壇的工業組織編寫,這個組織是由一些EDA廠商、計算機製造商、半導體廠商和大學組成的。IBIS的版本發佈 情況爲:1993年4月第一次推出Version1.0版,同年6月經修改後發佈了Version1.1版,1994年6月在San Diego通過了Version2.0版,同年12月升級爲Version2.1版,1995年12 月其Version2.1版成爲ANSI/EIA-656標準,1997年6月發佈了Version3.0版,同年9月被接納爲IEC 62012-1 標準,1998年升級爲Version3.1版,1999年1月推出了當前最新的版本Version3.2版。
      IBIS本身只是一種文件格式,它說明在一標準的IBIS文件中如何記錄一個芯片的驅動器和接收器的不同參數,但並不說明這些被記錄的參數如何使用,這些參數需要由使用IBIS模型的仿真工具來讀取。欲使用IBIS進行實際的仿真,需要先完成以下四件工作:
  1. 獲取有關芯片驅動器和接收器的原始信息源;
  2. 獲取一種將原始數據轉換爲IBIS格式的方法;
  3. 提供用於仿真的可被計算機識別的佈局佈線信息;
  4. 提供一種能夠讀取IBIS和佈局佈線格式並能夠進行分析計算的軟件工具。
      IBIS是一種簡單直觀的文件格式,很適合用於類似於Spice(但不是Spice,因爲IBIS文件格式不能直接被Spice工具讀取)的電路仿真工 具。它提供驅動器和接收器的行爲描述,但不泄漏電路內部構造的知識產權細節。換句話說,銷售商可以用IBIS模型來說明它們最新的門級設計工作,而不會給 其競爭對手透露過多的產品信息。並且,因爲IBIS是一個簡單的模型,當做簡單的帶負載仿真時,比相應的全Spice三極管級模型仿真要節省 10~15倍的計算量。
      IBIS提供兩條完整的V-I曲線分別代表驅動器爲高電平和低電平狀態,以及在確定的轉換速度下狀態轉換的曲線。V-I曲線的作用在於爲IBIS提供保護二極管、TTL圖騰柱驅動源和射極跟隨輸出等非線性效應的建模能力。
由上可知,IBIS模型的優點可以概括爲:
  1. 在I/O非線性方面能夠提供準確的模型,同時考慮了封裝的寄生參數與ESD結構;
  2. 提供比結構化的方法更快的仿真速度;
  3. 可用於系統板級或多板信號完整性分析仿真。可用IBIS模型分析的信號完整性問題包括:串擾、反射、振盪、上衝、下衝、不匹配阻抗、傳輸 線分析、拓撲結構分析。IBIS尤其能夠對高速振盪和串擾進行準確精細的仿真,它可用於檢測最壞情況的上升時間條件下的信號行爲及一些用物理測試無法解決 的情況;
  4. 模型可以免費從半導體廠商處獲取,用戶無需對模型付額外開銷;
  5. 兼容工業界廣泛的仿真平臺。
當然,IBIS不是完美的,它也存在以下缺點:
  1. 許多芯片廠商缺乏對IBIS模型的支持。而缺乏IBIS模型,IBIS工具就無法工作。雖然IBIS文件可以手工創建或通過Spice模型自動轉換,但是如果無法從廠家得到最小上升時間參數,任何轉換工具都無能爲力。
  2. IBIS不能理想地處理上升時間受控的驅動器類型的電路,特別是那些包含複雜反饋的電路;
  3. IBIS缺乏對地彈噪聲的建模能力。IBIS模型2.1版包含了描述不同管腳組合的互感,從這裏可以提取一些非常有用的地彈信息。它不工作的原因在於建模方式,當輸出由高電平向低電平跳變時,大的地彈電壓可以改變輸出驅動器的行爲。
      IBIS模型採用I/V和V/T表的形式來描述數字集成電路I/O單元和引腳的特性。由於IBIS模型無需描述I/O 單元的內部設計和晶體管制造參數,因而得到了半導體廠商的歡迎和支持。現在各主要的數字集成電路製造商都能夠在提供芯片的同時提供相應的IBIS模型。
     IBIS模型的分析精度主要取決於I/V和V/T表的數據點數和數據的精確度。由於基於IBIS模型的PCB板級仿真採用查表計算,因而計算量較小,通常只有相應的SPICE模型的1/10到1/100。
      採用SPICE,產品推向市場的時間取決於獲得模型,得到仿真結果的時間;在IBIS中,主要是從SPICE仿真界果中建立模型。換句話說, IBIS模型能夠很容易的驗證產品測試結果(並且,如果有必要產生新的模型)。如果同樣進行測量和模型驗證的話,IBIS模型能夠同SPICE具有同樣的 精度。IBIS模型提供的信息需要I/O傳輸特性、而不是內部電路的信息。
      IBIS是爲了滿足信號完整性(SI)仿真的需要,其結果是IBIS模型具有信號完整性(signal integrity)分析所需要的信息,如在不同的負載下信號上升/下降時間。由於提取的水平如此之高,所以模型不能夠很容易的調整大小,但是對於信號完 整性(SI)的應用不成問題。



IBIS模型介紹


1、IBIS模型
    隨着數字系統性能的不斷提升,信號輸出的轉換速度也越來越快,在信號完整性分析中,不能簡單的認爲這些高速轉換的信號是純粹的數字信號,還必須考慮到它們 的模擬行爲。爲了在PCB進行生產前進行精確的信號完整性仿真並解決設計中存在的問題,要求建立能描述器件I/O特性的模型。這樣,Intel最初提出了 IBIS的概念,IBIS就是I/O BufferInformation Specification的縮寫。
    爲了制定統一的IBIS格式,EDA公司、IC供應商和最終用戶成立了一個IBIS格式制定委員會,IBIS公開論壇也隨之誕生。在1993年,格式制定 委員會推出了IBIS的第一個標準Version 1.0,以後不斷對其進行修訂,現在的版本是1999年公佈的Version 3.2,  這一標準已經得到了EIA的認可,被定義爲ANSI/EIA-656-A標準。每一個新的版本都會加入一些新的內容,但這些新內容都只是一個IBIS模型 文件中的可選項目而不是必須項目,這就保證了IBIS模型的向後兼容性能。
    現在,已經有幾十個EDA公司成爲IBIS公開論壇的成員,支持IBIS的EDA公司提供不同器件的IBIS模型以及軟件仿真工具。有越來越多的半導體廠商開始提供自己產品的IBIS模型。
2、IBIS與SPICE的比較
    SPICE作爲一種通用的電路模擬語言,最早由加州大學伯克利分校發明。SPICE模型是對電路中實際的物理結構進行描述。由於其精確性和多功能性,已經 成爲電子電路模擬的標準語言。SPICE模型目前有兩個主要的版本:HSPICE和PSPICE,HSPICE主要應用於集成電路設計,而PSPICE主 要應用於PCB板和系統級的設計。
    採用SPICE模型在PCB板級進行SI分析時,需要集成電路設計者和製造商提供能詳細準確的描述集成電路I/O單元子電路的SPICE模型和半導體特性 的製造參數。由於這些資料通常都屬於設計者和製造商的知識產權和機密,所以只有較少的半導體製造商會在提供芯片產品的同時提供相應的SPICE模型。 SPICE模型的分析精度主要取決於模型參數的來源(即數據的精確性),以及模型方程式的適用範圍。而模型方程式與各種不同的數字仿真器相結合時也可能會 影響分析的精度。有的半導體生產者在向外界提供SPICE模型時,常常會對一些涉及到知識產權的部分進行‘清理’,這樣也會導致仿真結果的不準確。
    IBIS模型不對電路的具體結構進行描述,而只是採用I/V和V/t表的形式來描述數字集成電路I/O單元和引腳的特性。半導體廠商很容易在不透露自己的知識產權的同時爲客戶提供這種模型。
    IBIS模型的分析精度主要取決於I/V和V/T表的數據點數和數據的精確度。由於基於IBIS模型的PCB板級仿真採用查表計算,因而計算量較小,通常 只有相應的SPICE模型的1/10到1/100。用它進行仿真的速度要比用SPICE模型快很多。隨着電路板的設計越來越複雜,使用SPICE模型仿真 會花去很長的時間,而使用IBIS模型使得對整個電路板上的系統進行仿真成爲可能。雖然IBIS模型沒有SPECE模型那麼精確,但對於系統級分析而言已 經是完全足夠了。
    使用IBIS模型的另外一個優點就是,很多的IBIS模型都是由實際的器件得到,這樣,一旦有了完全的IBIS數據,那麼仿真得到的數據就與實際的器件有了直接的關係。
    總之,由於IBIS模型的方便,快捷,以及具有必要的精確度,越來越多的半導體廠商都願意向客戶免費提供自己產品的IBIS模型。
    由於目前還沒有一種統一的模型來完成所有的PCB板級信號完整性分析,因此在高速數字PCB板設計中,需要混合各種模型來最大程度地建立關鍵信號和敏感信號的傳輸模型。
    對於分立的無源器件,可以尋求廠家提供的SPICE模型,或者通過實驗測量直接建立並使用簡化的SPICE模型。對於關鍵的數字集成電路,則必須尋求廠家 提供的IBIS模型。目前大多數集成電路設計和製造商都能夠通過web網站或其它方式在提供芯片的同時提供所需的IBIS模型。對於非關鍵的集成電路,若 無法得到廠家的IBIS模型,還可以依據芯片引腳的功能選用相似的或缺省的IBIS模型。當然,也可以通過實驗測量來建立簡化的IBIS模型。對於PCB 板上的傳輸線,在進行信號完整性預分析及解空間分析時可採用簡化的傳輸線SPICE模型,而在佈線後的分析中則需要依據實際的版圖設計使用完整的傳輸線 SPICE模型。
3、IBIS模型的構成
    一個IBIS文件包括了從行爲上模擬一個器件的輸入、輸出和I/O緩衝器所需要的數據,它以ASCII的格式保存。IBIS文件中的數據被用來構成一個模 型,這個模型可以用來對印刷電路板進行信號完整性仿真和時序分析。進行這些仿真所需的最基本的信息是一個緩衝器的I/V參數和開關參數(輸出電壓與時間的 關係)。要注意的是,IBIS本身只是一種文件格式,它說明在一個標準的IBIS文件中如何記錄一個芯片的驅動器和接收器的不同參數,但並不說明這些被記 錄的數據如何使用,這些參數要由使用IBIS模型的工具來讀取。
    IBIS模型是以元件爲中心的,也就是說,一個IBIS文件允許你模擬整個的一個元件,而不僅僅是一個特定的輸入、輸出或I/O緩衝器。因而,除了器件緩 衝器的電學特性參數以外,IBIS文件還包括了器件的管腳信息以及器件封裝的電學參數。從Version 1.1開始,就定義了一個IBIS模型文件的最基本的組成元素爲I/V數據表、開關信息和封裝信息(圖1)。
IBIS模型基本組成 
    圖1    IBIS模型的基本組成元素
    圖中,模塊2 Pullup和模塊1 PullDown表現了標準輸出緩衝器的上拉和下拉晶體管,用直流I/V數據表來描述它們的行爲。模塊3中的Power_Clamp和Gnd_Clamp 是靜電放電或鉗位二極管,也是用直流I/V數據表來描述的。模塊4在IBIS文件中是Ramp參數,表示輸出從一個邏輯狀態轉換到另一個邏輯狀態,用dV /dt來描述某一特定阻性負載下輸出波形的上升沿和下降沿。模塊5描述的是體電容和封裝寄生參數,其中C_comp是硅晶元電容,它是不包括封裝參數的總 的輸出電容_L_pkg、R_pkg和C_pkg分別是由封裝帶來的寄生電感、寄生電阻和寄生電容。如果描述的僅僅是輸入管腳的IBIS模型,則只由模塊 3和模塊5兩部分組成即可。
    IBIS規範要求的I/V曲線的範圍是Vcc到(2*Vcc),制定這一電壓範圍的原因是,由全反射所引起的過沖理論上的最大值是兩倍的信號擺幅。 Gnd_Clamp的I/V曲線範圍定義爲-Vcc到Vcc,而Power_Clamp的I/V曲線範圍是0到(2*Vcc)。要注意的是,Pullup 和Power_Clamp在IBIS文件中的電壓Vtable爲Vcc-Voutput。
[Pulldown]
|
|  Voltage    I(typ)    I(min)    I(max)
|
-5.0V    -40.0m    -34.0m    -45.0m
-4.0V    -39.0m    -33.0m    -43.0m
|  …
0.0V    0.0m    0.0m    0.0m
|  …
5.0V    40.0m    34.0m    45.0m
10.0V    45.0m    4 0.0m    4 9.0m
|
[Pullup]    |  Note:  Vtable=Vcc  -Voutput
|
Voltage    I(typ)    I(min)    I(max)
-5.0V    32.0m    30.0m    35.0m
-4.0V    3 1.0m    2 9.0m    33.0m
|  …
0.0V    0.0m    0.0m    0.0m
|  …
5.0V    -32.0m    -30.0m    -35.0m
10.0V    -38.0m    -35.0m    -40.0m
|
[GND C1amp]
|
| Voltage    I(typ)    I(min)    I(max)
|
-5.0V    -390 0.0m    -3800.0m    -4000.0m
-0.7V    -80.0m    -75.0m    -85.0m
-0.6V    -22.0m    -20.0m    -25.0m
-0.5V    -2.4m    -2.0m    -2.9m
-0.4V    0.0m    0.0m    0.0m
5.0V    0.0m    0.0m    0.0m
|
[POWER Clamp]    | Note:Vtable=Vcc—Voutput
|
| Voltage    I(typ)    I(min)    I(max)
|
-5.0V    4450.0m    NA    NA
-0.7V    95.0m    NA    NA
-0.6V    23.0m    NA    NA
-0.5V    2.4m    NA    NA
-0.4V    0.0m    NA    NA
0.0V     0.0m    NA    NA
    Ramp參數表示了緩衝器的上升和下降時間,Ramp中的dV是緩衝器輸出電壓由20%變化到80%間的差值。這一參數只計入了晶元電容C_comp的影 響,而不考慮封裝寄生參數的影響。有時也用dV/&曲線來描述同樣的開關特性,相比之下dV/&曲線要更加精確一些。R_load表示這 些數據是在什麼樣的負載狀況下得到的,如果使用的是標準的50 ohm負載,那麼這一項是可選擇的。
[Ramp]
| variable typ         min        max
dV/dt_r    2.20/1.06n  1.92/1.28n 2.49/650p
dV/dt_f    2.46/1.21n  2.21/1.54n 2.70/770p
R_load=300ohms
    上面所提到的這些數據都有三個值可供選擇:典型值、最小值和最大值.這些是由工作環境的溫度、電源電壓以及工藝製程的變化來決定的。使用各種數據的最小值 和最大值,就可以表現出模型的最差和最好情況。例如,要得到一個快速的模型,可以使用最高值的電流、最快的ramp數據以及最小的封裝寄生參數:而要得到 慢速的模型則正好相反。在有的模型中,並不提供最小值和最大值,只是用N/A來表示,如上面舉的Power Clamp的例子。而典型值在模型中是必須要提供的。
    封裝寄生參數在IBIS模型文件中用R_pkg、L_pkg和C_pkg來表示,如果在文件中對管腳的說明部分對每個管腳又賦予了具體的封裝參數值,那麼全局定義的封裝參數就不起作用。
    在前面給出的IBIS文件的例子中可以看到,每一部分的開頭都由方括號開始,在方括號中的是定義語句的關鍵字,它對跟在後面的數據作出了說明,這樣仿真器 就可以使用這些數據。在一個IBIS文件中,有的關鍵字是必須的,而有的則是可選擇的。一個有效的IBIS文件必須包括以下三部分的數據和關鍵字:
  1. 被模擬的器件及IBIS文件本身的信息,包含這些信息的關鍵字爲[IBIS Ver]、[FileName]、  [File Rev]、  [Component]、  [Manufacturer]。
  2. 與封裝的電氣特性相關的信息以及管腳分佈情況,用關鍵字[Package]和[Pin]說明。
  3. 模擬器件的輸入、輸出及I/O緩衝器所需的數據,用關鍵字[Model]、[Pullup]、[Pulldown]、  [GND Camp]、  [Power Clamp]和[Ramp]說明。
4、建立IBIS模型
    IBIS模型可以通過仿真器件的SPICE模型來獲得,也可以用直接測量的方法來獲得。作爲最終用戶,最常見的方法是到半導體製造廠商的網站上去下載各種器件的IBIS模型,在使用前要對得到的IBIS模型進行語法檢查。
    建立一個器件的IBIS模型需要以下幾個步驟:
  1.  進行建立模型前的準備工作。這包括了:決定模型的複雜程度;根據模型所要表現的內容和元件工作的環境,來確定電壓和溫度範圍以及製程限制等因素;獲取元件相關信息,如電氣特性以及管腳分佈;器件的應用信息。
  2.  完成了上面的工作後,接下來就是要獲得I-V曲線或上升/下降曲線的數據,這可以通過直接測量或是仿真得到。
  3.  將得到的數據寫入IBIS模型。不同的數據在各自相應的關鍵字後列出,要注意滿足IBIS的語法要求。
  4.  初步建立了模型後,應當用s2iplt等工具來查看以圖形方式表現的V/I曲線,並檢查模型的語法是否正確。如果模型是通過仿真得到的,應當分別用IBIS模型和最初的晶體管級模型進行仿真,比較其結果,以檢驗模型的正確性。
  5.  得到了實際的器件後,或者如果模型是由測量得到的,要對模型的輸出波形和測量的波形進行比較。
5、使用IBIS模型
    IBIS模型可以通過仿真器件的SPICE模型來獲得,也可以用直接測量的方法來獲得。最爲最終用戶,最常見的方法是到半導體製造廠商的網站上去下載各種器件的IBIS模型,在使用前要對得到的IBIS模型進行語法檢查。
    IBIS模型主要用於板級系統或多板信號的信號完整性分析。可以用IBIS模型分析的信號完整性問題包括:串擾、反射、振鈴、上衝、下衝、不匹配阻抗、傳 輸線分析、拓撲結構分析等等。IBIS模型尤其能夠對高速信號的振鈴和串擾進行準確精細的仿真,它可用於檢測最壞情況的上升時間條件下的信號行爲,以及一 些用物理測試無法解決的問題。在使用時,用戶用PCB的數據庫來生成電路板上的連線的傳輸線模型,然後將IBIS模型賦給電路板上相應的驅動端或接收端, 就可以進行仿真了。
    圖2和圖3給出了一個用IBIS模型進行信號完整性分析的例子。可以看到,在使用IBIS模型進行仿真後,發現信號質量不佳,於是採取了添加終端匹配的方法,使信號質量有了較大的改善。
 
圖2  未添加終端匹配的例子                   

 圖3    添加了串聯匹配的例子

    爲了滿足多板信號仿真的要求,IBIS最新的版本Version3.2中添加了EBD(ElectricalBoard Description)的新特點。EBD模型的基本語法與IBIS模型相同,它是將整塊電路板做爲一個器件來對待,這樣,在多板仿真時就可以直接調用 EBD模型,而不用關心EBD模型所描述的電路板內部的具體情況。使用一些電路板仿真軟件可以自動生成EBD模型,例如HyperLynx6.1就有這一 功能。
    雖然IBIS模型有很多的優點,但是也存在一些不足。目前,仍有許多廠商缺乏對IBIS模型的支持。而缺乏IBIS模型,IBIS仿真工具就無法工作。雖 然IBIS文件可以手動創建或通過Spice模型來轉換,但是如果無法從廠家得到最小上升時間參數,任何轉換工具都無能爲力。另外,IBIS還缺乏對地彈 噪聲的建模能力。
6、IBIS相關工具及鏈接
    IBIS問世以來,出現了很多相關的工具,下面介紹幾種常用的免費工具 :
  •  Ibischk:能夠對IBIS文件進行語法檢查
  •  S2ibis:NCSU發明的SPICE到IBIS的轉換工具,支持HSPICE、PSPICE和SPICE3
  •  S2iplt:NCSU發明,能夠將IBIS文件中的V/I數據以圖的形式表現。
  •  Visual IBIS editor:HyperLynx中提供的工具,能夠對IBIS模型進行語法檢查,編輯以及對V/I數據繪圖。
  •  IBIS Cookbook:詳細描述了產生一個IBIS模型所需的步驟。
如果需要到網上查找一些IBIS的相關內容,下面的幾個鏈接可能會提供一些幫助:
   http://www.eigroup.org/ibis/ibis.htm
   http://www.innoveda.com/products/datasheets_HTML/ibis.asp
   http://www2.ncsu.edu/eos/project/erl_htm


IBIS 學習筆記

IBIS(Input/Output Buffer Information Specification)模型是基於V/I曲線的對I/O Buffer快速準確建模的方法,其目的是提供一種集成電路製造商與仿真軟件供應商以及設計工程師之間相互交換電子元件仿真數據的標準方法。IBIS是一 種行爲模型,它不是從要仿真的元件的結構出發定義的,而是從元件的行爲出發定義的。IBIS本身是一種標準的文本格式,它記錄驅動器和接收器的不同參數, 如驅動源輸出阻抗、上升/下降時間以及輸入負載等參數,但它不說明這些記錄參數是如何使用的。
    IBIS模型分爲驅動器模型和接收器模型,如下圖示:
 
 
Pull up/pull down:標準輸出緩衝器的上拉和下拉晶體管,用直流I/V數據表來描述它們的行爲。
 Power clamp/gnd clamp:靜電放電和鉗位二極管,用直流I/V數據表來描述它們的行爲。
 Ramp:表示輸出從一個邏輯狀態轉換到另一個邏輯狀態,用dV/dt來描述。
 C_comp:硅晶圓電容,它是不包括封裝參數的總輸出電容。
 R_pkg/L_pkg/C_pkg:封裝帶來的寄生電阻、電感和電容。。
無論是驅動器模型還是接收器模型都是由兩部分組成的:緩衝器結構模型([model] section)和封裝因子([component]&[pin] section)。
IBIS文件結構
IBIS文件包括了從行爲上模擬一個器件的輸入、輸出和I/O緩衝器所需要的數據,它以ASCII的格式保存。IBIS文件的格式如下圖示:
IBIS文件主要由三部分構成:
1. 文件頭描述:包括IBIS版本、文件名以及資料來源、修訂等信息。
2. 元件描述:該部分包含從數據手冊中得到的元件引腳、封裝電特性等信息,用關鍵字[package]和[pin]說明。
3. 模 型描述:該部分描述電流、電壓曲線和開關特性,模型用[pull up]、[Pull down]、[gnd clamp]、[power clamp]和[ramp]等關鍵字說明,[model]後的參數定義了模型的類型(輸入、輸出、I/O、開漏極等)以及它的輸入/輸出電容。
IBIS模型有3組可能的值:min、max以及typ。
IBIS文件中的V/I曲線數據包括:pull up、pull down、power clamp、gnd clamp四種,V/I曲線數據描述電壓從-Vcc~+2Vcc的對應電流的情況,輸入芯片的電流爲正。
IBIS模型類型:
1. 輸入(input):作爲接收器,必須定義輸入門限(Vinh、Vinl)、Power clamp和gnd clamp;
2. 輸出(output):作爲驅動器,必須定義power clamp、gnd clamp、pull up、pull down、ramp(dV/dt),此外可以有輸出高低電平門限(不屬於IBIS模型規範);
3. I/O:根據使能既可以作爲驅動器也可以作爲接收器;
4. 三態(3-state):通常作爲驅動器,也可通過使能端關閉;
5. open_drain:典型的驅動器模型,有一個開路的上拉側;
6. I/O_open_drain:具有I/O和open_drain雙重特性;
7. open_sink:驅動器模型,有一個開路的上拉側,由用戶提供一個上拉的電阻和一個電壓連接;
8. I/O_open_sink:具有I/O和open_sink雙重特性;
9. open_source:驅動器的模型,有一個開路的下拉側,由用戶提供一個下拉電阻和地或電源的電壓連接;
10. I/O_open_source:具有I/O和open_source雙重特性;
11. ECL:Emitter Coupled Logic,包括input_ECL、output_ECL、I/O_ECL、3-state_ECL;
12. 終端terminator:通常是輸入模型,當沒有數字邏輯門限時作爲模擬的負載效應,如電阻、電容、二極管等。
參考資料:
 Cadence高速PCB設計與仿真分析    北京航空航天大學出版社   黃豪佑等
   
IBIS 原理說明

IBIS 模型在做類似板級SI 仿真得到廣泛應用。在做仿真的初級階段,經常對於ibis 模型的描述有些疑問,只知道把模型拿來轉換爲軟件所支持的格式或者直接使用,而對於IBIS 模型裏面的數據描述什麼都不算很明白,因此下面的一些描述是整理出來的一點對於ibis 的基本理解。在此引用很多presention來描述ibis 內容(有的照抄過來,阿彌陀佛,不要說抄襲,只不過習慣信手拈來說明一些問題),僅此向如muranyi 等ibis 先驅者致敬。本文難免有些錯誤或者考慮不周,隨時歡迎進行討論並對其進行修改!
IBIS 模型的一些基本概念
    IBIS 這個詞是Input/Output buffer information specification 的縮寫。本文是基於IBIS ver3.2 所撰寫出來(www.eigroup.org/IBIS/可下載到各種版本spec),ver4.2增加很多新特性,由於在目前設計中沒用到不予以討論。。。
    在業界經常會把spice 模型描述爲transistor model 是因爲它描述很多電路細節問題。而把ibis 模型描述爲behavioral model 是因爲它並不象spice 模型那樣描述電路的構成,IBIS 模型描述的只不過是電路的一種外在表現,象個黑匣子一樣,輸入什麼然後就得到輸出結果,而不需要了解裏面驅動或者接收的電路構成。因此有所謂的 garbage in, garbage out,ibis 模型的仿真精度依賴於模型的準確度以及考慮的worse case,因此無論你的模型如何精確而考慮的worse case 不周全或者你考慮的worse case 如何周全而模型不精確,都是得不到較好的仿真精度。
IBIS 模型的構成
    經典示意圖如下:
 
    從上圖可以看出,基本的IBIS模型包括如下的一些信息(對於不同類型的model有一些信息會省略掉)
VI 曲線: Pullup & Pulldown &POWER clamp& GND clamp
VT曲線: Rise waveform, Fall waveform
    還有一些其它比較重要的信息比如Die capacitance: C_comp(最近好像那個muranyi對這個很感興趣,一直髮布presentation討論怎麼把這個做的更精確)以及RLC package parameter。至於一些基本的輸入以及使能信息會在軟件設置自動生成,不需要我們多關注。對於於ibis模型長什麼樣子,大家去micron主頁 ddr2 sdram模塊下載幾個io buffer看看是什麼樣。希望你先看看長啥樣再看下面的一些說明。
IBIS 的應用場合
    任何電路都可以用下面的模型(好像是Shannon 模型我不知道。。。)來描述
Driver -------------interconnect------------------Receiver
    注意IBIS 模型描述的是Driver/Receiver 的行爲特性而並不是它們的電路特性,因而內部的一些邏輯延時是沒有考慮的(在此你就該好好明白爲啥要區分Tco的概念),通過使用IBIS 模型,從而得出interconnect 對於電路的影響。在目前一些使用ibis model 仿真的軟件中,在Cadence 裏面,ibis 模型是轉換爲dml 格式,在Hyperlynx 裏面直接調用ibis 模型。由於ibis 支持的buffer type 很多,每個類型都會有對應的格式以及需要包含的信息,常用有output, input 以及IO 模型,至於其他的模型,大家可以參照ibis 說明,有些些微的差異。
IBIS 模型中vi/vt 曲線的由來
有大牛的示意圖形,不多說
Pull down 曲線由來(此曲線需要考慮與clamp 曲線重複的部分)
 
Ground clamp 曲線由來
 
Pull up 曲線由來(此曲線需要考慮與clamp 曲線重複的部分)
 
Power clamp 曲線由來
 
    注意:ibis 裏面定義電流流入方向爲正;在此圖中pull up 以及power clamp 曲線都沒經過轉化(傳說的vcc relative 沒出現,^_^,使用Vcc relative 從目前得到的解釋是模型可以應用在兼容電壓模式,舉個例子2.5v 兼容3.3V 的器件,2.5v 和3.3v 工作狀態下可以使用相同的模型而不用建立兩模型描述單個器件)
IBIS 模型在軟件中的應用
    目前高速信號軟件大部分都是spice-compatible 軟件,而且很多都內嵌field solver分析傳輸線,因而在仿真中勢必會把ibis 模型的信息轉換成spice 信息來使用,來看看ibis 模型是如何轉換成spice 信息使用的。看下如下的示意圖,
 當外接fixture,此部分電路可以直接在spice 中求解
    但是VI 曲線僅僅描述的是DC 狀態,那麼在ibis 模型中描述瞬態的vt 曲線如何
轉換值得商討,看以下的等效圖
 
可以得出等式:-Iout=Ku*Ipu+Kd*Ipd+Ipc+Igc
如果rising/falling waveform 只有一條曲線,比如VCC+Rfixture,可假設
 
得方程
 
如果有兩條曲線,比如VCC/GND+Rfixture,Ku 與Kd 獨立解出,從而可以得出仿真的瞬態曲線
比較有趣的問題
 Vi/Vt 曲線的匹配(參考hyperlynx 的幫助)
對 於falling waveform R_fixture=50 Ohms and V_fixture=3.3V負載線與pull up 曲線交界爲falling waveform 起始點,與pull down 曲線交界爲falling waveform 終點(始終記住pull up 是Vcc relative 需要轉換)
 
對於Rising waveform R_fixture=50 Ohms and V_fixture=3.3V
負載線與pull down 曲線交界爲rising waveform 起始點,與pull up 曲線交界爲rising waveform 終點
Package model 的應用
在ibis 裏面有三個地方可以使用package model
A, [Pin] 語句裏面,描述的是local package 參數,只有typ 值
B, [Package]語句裏面,描述的是global package 參數,有slow/typ/fast 取值
C, [Define Package Model]裏面,描述的是local package 參數,能帶傳輸線,只有typ 值
Ramp 數值由來
測量vt 曲線
dv=(80%-20%)*(Vmaximum-Vminimum)
dt= t [80%*(Vmaximum-Vminimum)]- t [20%*(Vmaximum-Vminimum)]
總結
1,很多人告訴我說想驗證ibis 模型,比較好玩,實際上你用軟件檢查後你會發現很少有其它事情我們可以做的。。。畢竟,你不是做芯片的,不要扁我!對於有問題的ibis 模型,我們有辦法做什麼事情麼?沒有,但你一定要知道問題在那兒,滅那些芯片的而不用被他們嘲笑,哈哈。
2,關於ibis 的發展前途,從目前發展趨勢,它的歸宿只有兩個:
a 由於自動化的需要,遲早要成爲一個編程語言,哈哈,又多一個求生的飯碗,大家快去學。。。
b 不要高興太早,它有可能語法太龐大複雜最終被其它取代。。。
參考文獻
1.Hyperlynx 幫助
2.The Development of Analog SPICE Behavioral Model Based on IBIS Model
3.Introduction to IBIS models and IBIS model making

尚且不清楚的幾個問題
1.對於一個I/O Buffer,IBIS file的table哪些是描述輸入特性的,哪些是描述輸出特性的?
2.對於pull down 和pull up tables, voltage sweep range是-V到2V,所以必然會存在電流倒灌(倒灌到供電電源或者從地流出)的現象,這對於電路使用者有什麼作用?實際電路中這種情況會對供電電源造成傷害嗎?
3.怎麼從IBIS裏面的table計算出Buffer的輸出電阻來?這個電阻應該是一個變化的值,當輸出不同的電流時取值不同。那麼如果對其做源端串行端接的話使用怎樣的電阻值?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章