**IBIS **模型簡介
IBIS(Input/Output Buffer Informational Specifation)是用來描述 IC 器件的輸入、輸出行為特性的文件。在IBIS模型里包含的核心內容就是在給定負載情況下得到的幾條I/V和V/T曲線,有了這幾條曲線就可以描述buffer的行為特性。這就需要我們注意, IBIS 模型并不提供 IC 器件的功能信息、邏輯信息、輸入到輸出的時間延遲等信息。也就是說,IBIS 模型只是提供了I/O Buffer 的行為特性。所以對于器件商家而言 IBIS模型不會泄漏器件的內部邏輯電路的結構。仿真的時候把相應的buffer添加到PCB板上電路的驅動端和接收端就可以進行 SI、串擾、EMC 以及時序的仿真分析。IBIS 模型可以通過實際的測量得出也可以通過器件的 SPICE模型轉換得到。由于它是一個行為級模型不包括IC內部的電路信息,因此在仿真速度方面比相應的Spice 的晶體管級模型要快 10~15 倍左右。
IBIS 模型是基于器件的。也就是說一個 IBIS 模型是對于整個器件的管腳而言的,而不是幾個特殊的輸入、輸出或者是 I/O 管腳的 Buffer。因此,IBIS 模型中除了一些器件 Buffer 的電氣特性,還包括 pin-buffer 的映射關系(除了電源、地和沒有連接的管腳外,每個管腳都有一個特定的 Buffer),以及器件的封裝參數。還包括一些電氣說明如 Vinh、Vinl、Vmeas以及管腳的寄生參數(如管腳的引線 R、L、C)等。同時IBIS 有其特定的語法和書寫格式,模型中各個字段、各種信息都需要按照其語法格式進行書寫。
一般情況,IBIS 模型包含以下一些信息,IBIS 模型的結構如下圖 1.1 所示。
1.關于文件本身和器件名字的信息。這些信息用以下的關鍵詞描述: [IBIS Ver] IBIS的版本號, [File Name]文件的名稱, [File Rev]文件的版本號, [Component]器件的名稱和[Manufacturer]。器件的制造商。
2.關于器件的封裝電氣特性描述(寄生RLC),可以使用關鍵詞 [Package]和[Pin]描述。
3.為了表述器件管腳的Buffer所需要的相關的數據信息。關鍵詞 [Model] 是用來表示每個Buffer的數據,具體的內容有:Model_type(Buffer的類型)、Vinh、Vinl以及C_comp(IC芯片的電容)。在前面的內容中提到了Buffer的特性描述,在IBIS模型中需要下面的一些關鍵詞描述:[Pull-up]、[Pull-down]、[GND clamp]、[Power clamp]和 [Ramp]。當然對于不同的Buffer可能不需要上面的全部的關鍵詞來描述。如OC和漏極開路電路就不需要[Pull-up]關鍵詞的數據信息。
下面就圖 1.1的內容作一個說明。在圖的右半部分的內容有[…]的是 IBIS 模型中的關鍵詞;沒有方括號的條目則代表的是子參數的標題。同時對于紅顏色的字符“Y”標明在 IBIS 模型中是必選項;而“N”則是表明該內容在 IBIS 模型中為任選項。
IBIS 提供兩條完整的 V-I 曲線分別代表驅動器為高電平和低電平狀態,以及在確定的轉換速度下狀態轉換的曲線。V-I 曲線的作用在于為 IBIS 提供保護二極管、TTL 推拉驅動源和射極跟隨輸出等非線性效應的建模能力。
一般而言,IC 器件的輸入、輸出和 I/O 管腳的 Buffer 的行為特性是通過一定的形式描述的。下面分別對于輸入、輸出和 I/O 管腳 Buffer 的表述形式作一個介紹。
對于一個 I/O(3-stateable)Buffer 需要 4 個 I/V 曲線來表征其特性。其相應的 4 個關鍵字分別是:
[Pullup]:在輸出為邏輯低時,輸出管腳 Buffer 的 I/V 特性;
[Pulldown]:在輸出為邏輯高時,輸出管腳 Buffer 的 I/V 特性;
[POWER Clamp]、[GND Clamp]:在輸出的電平強制在 Vcc以上和 GND 以下時,輸出管腳 Buffer 的I/V 特性。此外,還需要Buffer 由一個狀態轉換為另一個狀態的轉換時間,以及Buffer 的輸出電容。
對于輸出 Buffer 只需要 2 套數據曲線就可以了。一個是 Pullup 曲線;另一個就是 Pulldown 曲線。兩個曲線的定義和前面的內容是一致的。因為輸出管腳沒有 3 態的模式,所以電源和地鉗位二極管的兩個曲線就不需要晶體管的曲線區分了。
對于漏極開路或者是集電極開路的器件需要 3 個 I/V 曲線就可以了。3 個曲線分別是: [Pulldown]曲線、 [GND Clamp]以及[POWER Clamp]曲線。
輸入 Buffer 的數據。當我們測量輸入 Buffer 的數據時,我們可以使用同輸出或者 I/O Buffer 的方法。當然我們必須將電壓源放置在輸入端。對于輸入 Buffer 只需要[POWER Clamp]和[GND Clamp]的 I/V 數據。此外還需要Buffer 的輸入電容。
對于上述的V-I、V-T曲線對應下圖所示typ、min、max三種模式,在IBIS模型中對三種情況的定義如下:
IBIS模型使用
我們從IBIS模型中能夠獲得哪些信息
作為信號完整性工程師我們使用IBIS模型通常是用來做信號質量仿真,并以仿真結果為依據來判斷互連設計是否滿足要求。其實我們通過IBIS模型中還可以獲得很大對設計有用的信息。
從IBIS模型中可以獲得信號上升時間信息
IBIS模型中的關鍵字[Ramp]定義了buffer輸出的上升下降沿的斜率。如下為micron的DDR3芯片的DQ_34_1600的[Ramp]語句。用 dv_r表示將R_load 接地情況下,邏輯電平狀態(由低到高)轉換的 20%到 80%的擺幅大小。
由DDR3 的IO電壓為1.5V可以計算出信號的上升下降時間為330ps左右(20%到 80%的上升時間為200ps這里為了仿真方便使用330ps)。由經驗法則“當信號傳輸延時小于信號上升時間1/6時,互連線處在集總區域,不會體現出傳輸線效應。”可知,當信號傳輸延時小于55ps時,傳輸鏈路不會體現出傳輸線特性。也就是說如果當信號線的延時小于55ps的時候我們可以考慮采用直連的形式,而不需要使用任何匹配。
在ADS中搭建仿真電路對其進行驗證。仿真電路中包含以下幾部分:信號源內阻17ohm、負載阻抗為10Kohm和傳輸線阻抗并不匹配;信號源信號上升下降時間均為330ps、頻率800MHz輸出碼型“101010”;TLD1為延時可調的傳輸線。
將TLD1的delay分別設置為55ps(1/6上升時間)、165ps(1/2上升時間)、330ps(上升時間)進行仿真對比,負載端接收的波形如下:
如上所示紅色實線為互連線延時為55ps的仿真結果,過沖只有170mV左右,而且振鈴也很小信號質量沒有明顯惡化;藍色點線為互連線延時為1/2上升時間的仿真結果,可以看出此時信號的過沖達到了最大值幅度超過了600mV;粉色短劃線為互連線延時等于上升時間的仿真結果,此時不光過沖達到了最大值,而且過沖的寬度也有2倍的上升時間的寬度。
一個經驗豐富的信號完整性工程師通過IBIS模型中讀取了信號上升時間,并根據PCB布局情況估算布線延時就能夠大體得知接收端信號應該有什么樣的特征,以及信號是否需要匹配。
確定buffer的輸出阻抗
由上一節的介紹我們能夠從IBIS模型中得到輸出buffer的上升時間,那么如果預估的布線延時超過了1/6的上升時間我們就需要通過增加匹配的方式來解決信號完整性問題。最簡單的匹配方式就是源端的串聯匹配,但如何確定最優的串聯電阻值呢。我們也可以從IBIS模型中得到輸出buffer的驅動能力,即buffer的輸出阻抗Zout,由于通常情況下傳輸線阻抗Zo控制在50ohm。那么就可以計算得到串聯匹配電阻值Rseries = Zo-Zout。下面我們來看如何得到驅動器的輸出阻抗Zout。
IBIS模型中的pulldown和pullup曲線分別為輸出buffer的下管和上管的工作曲線。而數字電路只是簡單地工作在晶體管的飽和區或者可變電阻區。由模擬電路的知識我們可以畫出晶體管的直流負載線就可以找到操作點的電流電壓值,由此計算出輸出阻抗Zout。下面以pulldown曲線為例說明輸出阻抗Zout的求解過程。
一般情況IBIS模型中的每一條曲線都會對應typ、min、max三種情況,分別代表了不同的電壓、溫度下晶體管表現出的不同特性。負載線由50ohm上拉到Vgs,對于micron DDR3的IBIS模型的DQ_34_1600 buffer的typ模式Vgs=Vddq=1.5V,由此可以確定直流負載線和兩個坐標軸的交點(0V,30mA)、(1.5V,0A)。這樣就能畫出typ模式的直流負載線,進而得到操作點的電壓和電流,計算得到Zout=600/17.8=23.7ohm。這個計算結果和DDR3手冊中的34ohm非常接近,由此可知這種方式計算輸出buffer的輸出阻抗是完全正確的。如此我們就可以不通過仿真估算出需要添加的匹配電阻值。
最優的Rseries = 50-33.7 = 16.3ohm。在hyperlynx中搭建仿真電路進行仿真驗證,由于我們只是通過pulldown曲線來計算輸出阻抗,下面的仿真也只仿真一個下降沿。
如上所示的仿真結果來看信號基本沒有下沖,這就說明阻抗匹配已經做的很好了。細心的讀者可能會想到,當我們增加了16.3ohm的 之后,晶體管的直流負載線已經發生了變化因為到VDDQ的電阻已經由50ohm變為了50+16.3=66.3ohm了,對于在一些飽和區線性度比較高的晶體管這個影響并不是很大,而對于一些在飽和區電阻變化很快的晶體管就會導致匹配的不理想存在下沖和過沖。
我們也可以通過另一種更加簡便的方法來得到輸出阻抗Zout。源端阻抗匹配的目的就是要讓驅動器輸出阻抗Zout加上源端串阻Rseries得到的等效輸出阻抗和傳輸線阻抗匹配。我們可以反過來思考當驅動器等效輸出阻抗等于傳輸線阻抗時,驅動器阻抗和傳輸線阻抗之間由于分壓使進入傳輸線的入射電壓Vinc=Vddq/2,那么通過傳輸線Zo的電流為
對于上面的例子而言VDDQ=1.5V,Zo=50ohm,計算得到Iinc = 15mA。
由此,我們可以直接在pulldown曲線中找到15mA對應的電壓500mV,計算得到Zout = 500/15 = 33.3ohm,進而求得最佳的Rseries = 16.7ohm。
可以使用同樣的方法對pullup曲線進行分析得到上管的輸出阻抗,然后可以根據上下管的輸出阻抗得到串阻的范圍,只需要在這個范圍內選擇一個
就可以獲得最好的匹配效果。
確定各個管腳的封裝延時
IBIS模型中可能會包含三種形式的封裝信息,分別在[package] [pin] [package model]三個字段定義。下面來說明一下這三個字段的含義和區別。
首先來看[package]字段,它是定義關于R_pkg,L_pkg, C_pkg參數的一個字段,這里定義的參數是一個籠統的數,為什么說它是籠統的呢,是因為它只有一組數就把器件所有的PIN腳都包括了。
顯然這種方式無法描述封裝內不同管腳之間的寄生參數的差異性,在速率不是很高的情況下這種參數模型仿真得到的信號質量可能和實際偏差不大,但是仿真結果不能表示封裝對信號時序的影響,同樣隨著信號速率的不斷提高如DDR3等接口的仿真如果想得到準確的信號質量和時序結果不能僅僅依靠[package]字段的參數。一般大的IC廠家都不會只弄這么一組數據,還會在[pin]字段里描述了每個PIN腳的package參數,同時與管腳的編號、管腳的信號名稱、管腳的模型名稱相對應,如下所示:
[pin]字段和[package]字段一樣,僅僅用一階的RLC電路來描述整個package的特性,可能在頻率不太高的情況下可以做個參考,但是到了高頻后這顯然是不夠的,PIN與PIN之間的耦合信息是沒有的。最理想的做法是用3D全波電磁場建模解決問題,但這種想法并不現實package的3D模型不是每個廠家都能提供的。但是我們已經可以從[pin]字段的L_pin、C_pin中得到每個pin在封裝內的延時信息:
這樣我們就可以通過PCB的布線控制來補償芯片封裝內部的延時偏差,高速總線的時序設計將能夠得到最大限度的保障。
IBIS5.0版本又引入了[package model]字段,讓手頭僅有的資源發揮出最大的作用。[package model]字段內容可以出現在.ibs文件里,也可以出現在一個單獨的以.PKG為后綴名的文件里。先看一下它的整體結構:
接下來3個字段[Manufacturer],[OEM],[Description]屬于描述性質的,大家完全可以忽略,對仿真沒有什么影響。
[Number Of Pins],這個看字面意思應該也能理解了,就是器件的引腳個數。[Pin Numbers]字段中列出了封裝中所有pin的編號。
接下來的[Model Data]將是[package model]的核心內容,包含了[Resistance Matrix],[Inductance Matrix],[Capacitance Matrix],翻譯過來就是電阻矩陣,電感矩陣和電容矩陣。后面有Banded_matrix,Sparse_matrix等關鍵字,分別表示為一維矩陣,多維矩陣。一維矩陣的情況就和[pin]字段中定義的R_pin、L_pin、C_pin效果一樣并不包含pin和pin之間存在的耦合信息,多維矩陣則包含了pin和pin之間的耦合信息不僅能夠進行信號質量仿真也可以進行串擾仿真。
通過上面的分析可知,我們可以在[pin]、[package model]字段中獲得每個管腳封裝內部的延時信息,獲得這一延時對我們來說有著怎樣的意義呢?
首先,我們知道互連線延時超過信號上升時間延時1/6時互連線就會表現出傳輸線效應。我們已經了解匹配電阻的布局必須足夠靠近驅動器才能和驅動器的輸出電阻看成是集總電路,才能獲得最好的匹配效果。由[ramp]參數可以讀出驅動器的上升下降時間,我們可以用1/6信號上升時間減去封裝內部的延時作為封裝管腳到匹配電阻的PCB布線延時的約束。
第二,由于我們在進行信號質量測試時只能在靠近輸入管腳的封裝處選擇測試點。而對于一個輸入管腳如果封裝延時很大,我們在封裝處測試得到的信號波形和芯片DIE實際接收到的波形將會存在很大的差異。
在ADS中搭建仿真電路,有8.6nH的電感和2.25pF的電容來模擬封裝參數,仿真來觀測Vpkg和Vdie兩點的電壓波形差異。
計算得到封裝延時,
此時的仿真結果如下圖所示(紅色實線為die內接收波形,藍色短劃線為封裝處的測試波形)
如上所示,兩個波形存在比較明顯的差異。封裝處的測試波形在上升和下降沿都存在100ps左右的回溝,而且邊沿要比die內測試到的波形要緩,幅度要比die內信號波形低。這一現象可以用反射的理論來解釋,在封裝處測試的波形實際上是由發送端的入射波和接收端反射產生的反射波的疊加產生,由于封裝參數的存在導致入射波和反射波之間有一定的延時,在疊加的時候就導致回溝或者臺階的出現。
如此我們可以試著減小封裝參數來看是否回購有效減小或者消失。將封裝參數更改為電感6.01nH、電容1.52pF,計算得到封裝延時
此時的仿真結果如下圖所示(紅色實線為die內接收波形,藍色短劃線為封裝處的測試波形)
如上所示,兩個波形之間的差異已經很小。封裝處的測試波形在上升下降沿的回溝都消失了,只是邊沿要比die內測試到的波形要緩一點,幅度要比die內信號波形低。
-
二極管
+關注
關注
147文章
9634瀏覽量
166374 -
驅動器
+關注
關注
52文章
8232瀏覽量
146282 -
PCB板
+關注
關注
27文章
1448瀏覽量
51624 -
IBIS
+關注
關注
1文章
53瀏覽量
19885 -
GND
+關注
關注
2文章
539瀏覽量
38699
發布評論請先 登錄
相關推薦
評論