- 基于ANSYS的信號和電源完整性設(shè)計與分析(第2版)
- 周潤景
- 5803字
- 2020-11-24 13:22:22
1.5 仿真模型
1.5.1 IBIS模型
在IBIS(Input/Output Buffer Information Specification)模型出現(xiàn)之前,人們用晶體管級的SPICE(Simulation Program with Integrated Circuit Emphasis)模型進行系統(tǒng)仿真,這種方法有以下三個方面的問題。
結(jié)構(gòu)化的SPICE模型只適用于元器件較少和網(wǎng)絡(luò)簡單的小規(guī)模系統(tǒng)仿真,借助這種方法設(shè)定系統(tǒng)的設(shè)計準則或?qū)σ粭l實際的網(wǎng)絡(luò)進行最壞情況分析。
得到元器件結(jié)構(gòu)化的SPICE模型較困難,元器件生產(chǎn)廠不愿意提供包含其電路設(shè)計、制造工藝等信息的SPICE模型。
各個商業(yè)版的SPICE軟件彼此不兼容,一個供應(yīng)商提供的SPICE模型可能在其他的SPICE仿真器上不能被運行。
因此,人們需要一種被業(yè)界普遍接受的、不涉及元器件設(shè)計制造專有技術(shù)的、能準確描述元器件電氣特性的行為化的“黑盒”式的仿真模型。
1990年年初,Intel公司為了滿足PCI總線驅(qū)動的嚴格要求,在內(nèi)部草擬了一種基于Lotus Spread-Sheet的列表式模型,數(shù)據(jù)的準備和模型的可行性是主要問題。由于當時已經(jīng)有了幾個EDA廠商的標準存在,因此邀請了一些EDA供應(yīng)商參與通用模型格式的確定。這樣,IBIS 1.0在1993年6月誕生,1993年8月被更新為IBIS 1.1版本,并被廣泛接受。此時,旨在與技術(shù)發(fā)展要求同步和改善IBIS模型可行性的IBIS論壇(IBIS Open Forum)成立,更多的EDA供應(yīng)商、半導體商和用戶加入IBIS論壇。1995年2月,IBIS論壇正式并入美國電子工業(yè)協(xié)會(Electronic Industries Association,EIA)。1995年12月,IBIS 2.1版本成為美國工業(yè)標準ANSI/EIA-656。1997年6月發(fā)布的IBIS 3.0版本成為IEC 62012-1標準。1999年9月通過的IBIS 3.2版本成為美國工業(yè)標準ANSI/EIA-656-A。目前,大量使用的模型為IBIS 2.1、IBIS 3.2版本。
1.IBIS模型與SPICE模型的特點
進行板級仿真的關(guān)鍵問題在于模型的建立。在傳統(tǒng)的電路設(shè)計中,SPICE模型作為電路級模型能夠提供精確的結(jié)果,但是SPICE模型不能滿足現(xiàn)在的仿真需求,SPICE與IBIS模型的各自特點如下。
SPICE模型:
?電壓/電流/電容等節(jié)點關(guān)系從元器件圖形、材料特性得來,建立在低級數(shù)據(jù)的基礎(chǔ)上。
?每個緩沖器中的元器件分別被描述/仿真。
?仿真速度慢,適用于電路級的設(shè)計者。
?包含了詳細的芯片內(nèi)部設(shè)計信息。
IBIS模型:
?電壓/電流/時間等緩沖器的節(jié)點關(guān)系建立在V-I或V-t數(shù)據(jù)曲線上。
?其中沒有包括電路細節(jié)。
?仿真速度快(是SPICE模型仿真的25倍),適用于系統(tǒng)設(shè)計者。
?不包括芯片內(nèi)部的設(shè)計信息。
2.IBIS模型的物理描述
IBIS模型是以I/O緩沖器結(jié)構(gòu)為基礎(chǔ)的。I/O緩沖器行為模塊包括封裝所帶來的RLC寄生參數(shù)、硅片本身的寄生電容參數(shù)、電源或地的電平鉗位保護電路、緩沖器特征(門檻電壓、上升沿、下降沿、高電平和低電平狀態(tài))。IBIS模型結(jié)構(gòu)如圖1-5-1所示。

圖1-5-1 IBIS模型結(jié)構(gòu)
輸入的模型電路可以細化,如圖1-5-2所示。
C_pkg、R_pkg、L_pkg為封裝參數(shù)。
C_comp為硅片上引腳的壓焊盤電容。
Power_Clamp為高端ESD結(jié)構(gòu)的V-I曲線。
GND_Clamp為低端ESD結(jié)構(gòu)的V-I曲線。
類似地,輸出的模型電路也可以細化,如圖1-5-3所示。

圖1-5-2 輸入的模型電路

圖1-5-3 輸出的模型電路
1為Pullup、Pulldown,包含了高電平和低電平狀態(tài)的上拉、下拉V-I曲線。模擬緩沖單元被驅(qū)向低電平或高電平的V-I特性。
2為Ramp,包含了上升沿和下降沿的擺率(dV/dt),指的是輸出電壓幅度變化其20%~80%所用的時間。為了更加準確地描述上升沿和下降沿的過程,有上升沿和下降沿的V-t曲線。
3為Power/GND Clamp,包含了電源和地的鉗位保護電路的V-I特性。
4為C_comp,包含了硅片本身固有的寄生電容。
5為封裝的寄生參數(shù),對元器件的所有引腳進行一個粗略的描述,也可以進一步地詳細描述。
元器件中只有C_comp的描述而沒有R_comp的描述,這是因為硅片本身的寄生電阻影響已經(jīng)包含在上、下拉電路和鉗位保護電路的V-I特性中了。
由此可以看出,IBIS模型是一種基于全電路仿真或測試獲得V-I曲線而建立的快速、準確的行為化的電路仿真模型。它的仿真速度是SPICE模型仿真速度的25倍以上。人們可以根據(jù)標準化的模型格式建立這種模擬IC電氣特性的模型,并可以通過模型驗證程序驗證模型格式的正確性。IBIS模型幾乎能被所有的模擬仿真器和EDA工具接受。由于通過測量或仿真數(shù)據(jù),較易獲得IBIS模型,且IBIS模型不涉及芯片的電路設(shè)計和制造工藝,芯片供應(yīng)商也愿意為用戶提供元器件的IBIS模型,所以IBIS模型被廣泛應(yīng)用于系統(tǒng)的信號完整性分析。
3.建立IBIS模型
IBIS模型可以通過仿真器件的SPICE模型來獲得,也可以用直接測量的方法來獲得。作為最終用戶,最常見的方法是到半導體制造廠商的網(wǎng)站下載各種元器件的IBIS模型,在使用前要對得到的IBIS模型進行語法檢查。
建立一個元器件的IBIS模型需要以下5個步驟。
(1)進行建立模型前的準備工作,包括決定模型的復雜程度;根據(jù)模型所要表現(xiàn)的內(nèi)容和元器件工作的環(huán)境,來確定電壓和溫度范圍,以及制程限制等因素;獲取元器件相關(guān)信息,如電氣特性及引腳分布;元器件的應(yīng)用信息。
(2)獲得V-I曲線或上升/下降沿V-t曲線的數(shù)據(jù),可以通過直接測量或仿真得到。
(3)將得到的數(shù)據(jù)寫入IBIS模型。不同的數(shù)據(jù)在各自相應(yīng)的關(guān)鍵字后列出,要注意滿足IBIS的語法要求。
(4)初步建立了模型后,應(yīng)當用S2iplt等工具來查看以圖形方式表現(xiàn)的V-I曲線,并檢查模型的語法是否正確。如果模型是通過仿真得到的,應(yīng)當分別用IBIS模型和最初的晶體管級模型進行仿真,比較其結(jié)果,以檢驗模型的正確性。
(5)得到了實際的元器件后,或者模型是由測量得到的,要對模型的輸出波形和測量的波形進行比較。
4.使用IBIS模型
IBIS模型主要用于板級系統(tǒng)的信號完整性分析。可以用IBIS模型分析的信號完整性問題包括串擾、反射、振鈴、過沖、下沖、不匹配阻抗、傳輸線分析、拓撲結(jié)構(gòu)分析等。IBIS模型尤其能夠?qū)Ω咚傩盘柕恼疋徍痛當_進行準確、精細的仿真,它可用于檢測最壞情況的上升時間條件下的信號行為,以及一些用物理測試無法解決的問題。在使用IBIS模型時,用戶用PCB的數(shù)據(jù)庫來生成PCB上的連線的傳輸線模型,然后將IBIS模型賦給PCB上相應(yīng)的驅(qū)動端或接收端,就可以進行仿真了。
雖然IBIS模型有很多的優(yōu)點,但也存在一些不足。目前,仍有許多廠家缺乏對IBIS模型的支持,致使IBIS仿真工具無法工作。雖然IBIS文件可以被手工創(chuàng)建或通過SPICE模型來轉(zhuǎn)換獲得,但若無法從廠家得到最小上升時間參數(shù),則通過任何轉(zhuǎn)換工具都無法獲得。另外,IBIS模型缺乏對地彈噪聲的建模能力。
1.5.2 驗證IBIS模型
Model Integrity能夠進行模型建立、處理和校驗。在使用仿真模型前,必須先驗證仿真模型。Model Integrity可以分析IBIS模型和Cadence DML(Device Model Library)模型的語法錯誤,Model Integrity可以相互轉(zhuǎn)換IBIS、Quad和Cadence DML文件。模型校驗包含語法檢查、單調(diào)性檢查、模型完整性檢查和數(shù)據(jù)合理性檢查。
1.瀏覽解析的IBIS文件結(jié)果
(1)在程序文件夾中選擇Cadence→Release 17.2→Model Integrity項,彈出Model Integrity窗口,如圖1-5-4所示。

圖1-5-4 Model Integrity窗口
(2)在Model Integrity窗口選擇File→Open菜單命令,打開ep1sgx25f_1.ibs文件,如圖1-5-5所示。
當打開IBIS文件時,一個解析程序ibischk4.2.0開始運行。這個解析程序運行完后,會彈出錯誤和警告信息,必須解決這些錯誤和警告。
(3)在Physical…選項卡中單擊ep1sgx25f_1項前面的+號,瀏覽IOCell模型,樹列表中顯示所有的IOCell模型,如圖1-5-6所示。
(4)在Physical…選項卡中雙擊1sgx_sstl25c2_io_dm,然后單擊按鈕,會發(fā)現(xiàn)在編輯窗口有警告標志,并且最下面的輸出窗口會有警告信息,如圖1-5-7所示。

圖1-5-5 模型內(nèi)容

圖1-5-6 IOCell模型
(5)在輸出窗口可以看到第1行被高亮顯示,并且輸出窗口有提示信息“NOTE(line 1260)-GND Clamp Minimum data is non-monotonic”(第1260行,GND Clamp的最小數(shù)據(jù)是非單調(diào)的)。對于這個IOCell模型,在編輯窗口會查看到電壓為“2.1500e+000”時對應(yīng)的最小電流為“-3.1180e-010”,上一行(1259行)的“2.0000e+000”對應(yīng)的最小電流為“-4.9080e-012”,第1258行的“1.8500e+000”對應(yīng)的最小電流為“-8.5730e-011”,如圖1-5-8所示。

圖1-5-7 警告標志和信息

圖1-5-8 具體警告信息
(6)在Physical…選項卡中選擇1sgx_sstl25c2_io_dm項,右擊,從彈出的菜單中選擇View Curve→GND_Clamp→Min菜單命令,彈出Untitled-SigWave窗口,如圖1-5-9所示。

圖1-5-9 Untitled-SigWave窗口
(7)Untitled-SigWave窗口顯示了下拉I-V曲線,非單調(diào)性波形電壓為1.85~2.15V,由于電流值差別過小,在圖1-5-9中不能被正確顯示。在當前目錄中,會產(chǎn)生波形文件,文件名為IOCell,擴展名為sim。
(8)選擇File→Exit菜單命令,退出Untitled-SigWave窗口。
(9)這里需要注意的是,該非單調(diào)性波形發(fā)生的位置是在電壓波形的末端,而且變化很小,對仿真結(jié)果影響甚小,無須糾正IBIS文件。
(10)在窗口底部的信息欄中,查看警告信息,找到“WARNING-Model'1sgx_sstl25c2_io_dm':Model_type'I/O'must have Vinl set”(模型“1sgx_sstl25c2_io_dm”:I/O模型必須有Vinl設(shè)置)和“WARNING-Model'1sgx_sstl25c2_io_dm':Model_type'I/O'must have Vinh set”(模型“1sgx_sstl25c2_io_dm”:I/O模型必須有Vinh設(shè)置),如圖1-5-10所示。
(11)在Physical View欄中雙擊1sgx_sstl25c2_io_dm項,編輯窗口會顯示該IOCell模型信息,并且模型名被高亮顯示,如圖1-5-11所示。
(12)在編輯窗口部分可以看到Model_type I/O部分沒有Vinh和Vinl,在“Vmeas=1.2500”語句的上面輸入“Vinl=1.0700”和“Vinh=1.4300”,如圖1-5-12所示。
(13)選擇File→Save As菜單命令,保存文件于當前目錄,文件名為ep1sgx25f_11.ibs。

圖1-5-10 窗口底部的信息欄

圖1-5-11 1sgx_sstl25c2_io_dm模型參數(shù)
(14)在Physical…選項卡中選擇ep1sgx25f_11.ibs項,右擊,從彈出的菜單中選擇parse selected菜單命令,Model Integrity會運行ibischk解析器,并且在當前目錄下建立ep1sgx25f_11_ibisparse.log文件。同時,在ep1sgx25f_11前面有一個紅色的“×”標志,如圖1-5-13所示。

圖1-5-12 修改1sgx_sstl25c2_io_dm模型參數(shù)

圖1-5-13 錯誤標志
(15)在Physical…選項卡中雙擊ep1sgx25f_11項,在編輯窗口會彈出錯誤標志。雙擊編輯窗口的錯誤標志,在輸出窗口會有警告信息,如圖1-5-14所示。

圖1-5-14 錯誤標志和警告信息
(16)Model Integrity要求文件名和File Name一致,在編輯窗口中改變File Name后的ep1sgx25f_1.ibs文件為ep1sgx25f_11.ibs文件,單擊保存按鈕,保存文件。
(17)在Physical…選項卡中選擇ep1sgx25f_11項,右擊,在彈出的菜單中選擇parse selected菜單命令,解析文件,發(fā)現(xiàn)錯誤標志消失,如圖1-5-15所示。

圖1-5-15 錯誤標志消失
2.在Model Integrity中仿真IOCell模型
(1)在Physical…選項卡中選擇ep1sgx25f_11項,右擊,從彈出的菜單中選擇Simulate Buffer…菜單命令,彈出Buffer Model Simulation窗口,如圖1-5-16所示。在Physical…選項卡中有一個新的文件,這是DML格式的IBIS模型,PCB SI運行仿真需要DML格式的模型,所以Model Integrity窗口自動產(chǎn)生DML文件。

圖1-5-16 Buffer Model Simulation窗口
(2)在Buffer Model Simulation窗口選擇Output選項卡,可以看到,Vref自動讀取模型中的設(shè)定值為1.25,Cref自動讀取模型中的設(shè)定值為0.03n,Tperiod為仿真周期。更改參數(shù)Rref為50,如圖1-5-17所示。

圖1-5-17 設(shè)置測試負載電阻參數(shù)
(3)單擊Simulate按鈕,運行仿真,并在Untitled-SigWave窗口產(chǎn)生波形,如圖1-5-18所示。該波形被寫入當前目錄,波形名為Waveform.sim。當仿真其他IOCell模型時,波形文件會被重寫。
(4)單擊Close按鈕,關(guān)閉波形窗口。
(5)在Buffer Model Simulation窗口單擊Close按鈕,關(guān)閉Buffer Model Simulation窗口。
3.使用IBIS to DML轉(zhuǎn)換器
(1)在Physical…選項卡中單擊ep1sgx25f_11項,選擇Tools→Translation Options Editor菜單命令,彈出Translation Options窗口,如圖1-5-19所示。
(2)默認選中Make model names unique項,這個設(shè)置為每個IOCell模型名附加IBIS文件名。單擊OK按鈕,關(guān)閉Translation Options窗口。
(3)在Physical…選項卡中右擊ep1sgx25f_11項,從彈出的菜單中選擇IBIS to DML菜單命令,系統(tǒng)會提示是否重寫,這是因為軟件先前已經(jīng)自動生成了一個DML文件,單擊確定按鈕,重寫文檔,如圖1-5-20所示。

圖1-5-18 仿真波形

圖1-5-19 Translation Options窗口

圖1-5-20 警告窗口
(4)查看編輯窗口的第3行,第1個IOCell模型為EP1SGX25F_11_1sgx_dhstl15c2_out,ep1sgx25F_11已經(jīng)被添加到IOCell模型名的前面,如圖1-5-21所示。
4.瀏覽DML文件的錯誤和警告信息
當轉(zhuǎn)換一個IBIS文件為DML格式時,dmlcheck解析器運行,并在輸出窗口顯示錯誤和警告信息。

圖1-5-21 DML文件信息
(1)在工具欄中單擊按鈕,輸出窗口提示12個警告和0個錯誤。在輸出窗口滾動查看警告信息“WARNING@line239:EP1SGX25F_11_1sgx_dhstl15c2_out GroundClamp:Overall typical area exceeds overall maximum area”。
(2)在輸出窗口雙擊警告信息,在編輯窗口頂部會高亮顯示第239行,如圖1-5-22所示。

圖1-5-22 警告信息
(3)注意關(guān)鍵詞VICurve和下面的數(shù)據(jù),在DML格式中沒有提示哪一欄數(shù)據(jù)是最小值、典型值或最大值,并且單位統(tǒng)一為伏特(V)和安培(A),最左邊一欄列出了電壓值,緊靠著這一欄右邊的是典型電流值,下一欄是最小電流值,最右邊一欄是最大電流值。這些數(shù)據(jù)沒有IBIS文件容易被讀取,所以要查看IBIS文件中的這個模型以找出dmlcheck警告的變化。
(4)在Physical…選項卡中雙擊1sgx_dhstl15c2_out項,在編輯窗口右擊,從彈出的菜單中選擇Replace菜單命令,彈出Replace窗口,在Find what文本框中輸入POWER_Clamp,不選擇Match case項,如圖1-5-23所示。

圖1-5-23 Replace窗口
(5)單擊Find Next按鈕,在編輯窗口中1sgx_dhstl15c2_out模型的POWER_Clamp被高亮顯示,單擊Cancel按鈕,關(guān)閉Replace窗口。
(6)查看VICurve數(shù)據(jù)的電流值,在Max欄的電流值應(yīng)該比Min和Typ欄的大,但發(fā)現(xiàn)在-3.10~-1.85V的數(shù)據(jù)在錯誤的欄里。
(7)在Physical…選項卡中選擇1sgx_dhstl15c2_out項,右擊,從彈出的菜單中選擇View Curve→POWER_Clamp→All菜單命令,彈出Untitled-SigWave窗口,顯示最小值(Min)、最大值(Max)、典型值(Typ)3條曲線,發(fā)現(xiàn)最大值不總是比最小值和典型值大,而典型值不總是比最小值大,這就是dmlcheck解析器產(chǎn)生警告信息的原因,如圖1-5-24所示。

圖1-5-24 POWER_Clamp曲線
(8)關(guān)閉Untitled-SigWave窗口,以及ep1sgx25f_11文件和ep1sgx25f_11文件。
5.使用Espice to Spice轉(zhuǎn)換器
使用Espice to Spice轉(zhuǎn)換器可以把Cadence Espice文件轉(zhuǎn)換為標準的Spice文件。在PCB SI中要設(shè)置仿真參數(shù),從Probe窗口選擇要仿真的網(wǎng)絡(luò),從報告或波形窗口保存電路文件,這些動作都會將Espice文件寫入signoise.run/case#/sim#目錄下,其中#代表數(shù)字,sim目錄包含名為main.spc和其他幾個需要的文件。
(1)在Model Integrity窗口選擇File→Open菜單命令。在D:\SQAdv_14_2\mi\ESpice\signoise.run\case1\sim1目錄下打開main.spc文件,如圖1-5-25所示。

圖1-5-25 轉(zhuǎn)換后的模型
(2)在Physical…選項卡中單擊main項,選擇Tools→Translation Options…菜單命令,在彈出的Translation Options窗口打開Espice to Spice選項卡,如圖1-5-26所示。不選擇任何項,main.spc文件包含傳輸線元素。
(3)在Translation Options窗口單擊OK按鈕。在Physical…選項卡中選擇main項,右擊,從彈出的菜單中選擇Translate Selected→Generic Spice菜單命令,main.spc文件已經(jīng)被轉(zhuǎn)換為標準Spice格式,其文件名為mainspc_gen.spc,如圖1-5-27所示。
(4)在Physical…選項卡中選擇mainspc_gen→File→Save as菜單命令,保存文件,其文件名為mainspc_gen_default。
(5)選擇Tools→Translation Options…菜單命令,在彈出的Translation Options窗口打開Espice to Spice選項卡,勾選Use W element for all transmission line models復選框,如圖1-5-28所示。

圖1-5-26 Translation Options窗口

圖1-5-27 Spice格式模型
(6)單擊OK按鈕,關(guān)閉Translation Options窗口。W-element文件用于Hspice仿真,在Physical…選項卡中選擇mainspc_gen項,右擊,從彈出的菜單中選擇Translate Selected→Generic Spice菜單命令,彈出提示信息,單擊Yes按鈕,如圖1-5-29所示。

圖1-5-28 Translation Options窗口

圖1-5-29 轉(zhuǎn)換修改的模型
(7)在Physical…選項卡中選擇mainspc_gen項,選擇File→Save as菜單命令,保存文件,其文件名為mainspc_gen_welement。
(8)在Physical…選項卡中選擇main項,右擊,從彈出的菜單中選擇Close Selected菜單命令,關(guān)閉main.spc文件。
(9)選擇Window→Tile Horizontally(橫向平鋪)菜單命令,使兩個文件上下顯示,這樣很容易將這兩個文件進行比較,如圖1-5-30所示。

圖1-5-30 比較模型文件
(10)在文件中查找Trace模型定義,W-element指向其他文件,關(guān)鍵詞“RLGCfile=文件名”,這就意味著當提取W-element Spice文件到Hspice時,也要提取它的RLGC文件。
(11)在名為subckt COMPLETE_Interconn的W-element文件中查看子電路定義,在轉(zhuǎn)換的過程中,這些文件被轉(zhuǎn)換為標準Spice文件,將Trace定義從Allegro PCB SI電路板文件中提取出來并存儲在interconn.iml文件中。
(12)查看W-element聲明的第1行“WTL_XSTLX3090Y9732L1X3090Y9775L1”,“WTL_X”表示W(wǎng)-element聲明,“STL”表示單傳輸線,“X3090”、“Y9372”和“L1”表示X和Y坐標和互連線連接的層號,這表示連接到子電路的內(nèi)部節(jié)點。“X3090”、“Y9775”和“L1”表示X和Y坐標和互連線連接的層號,這表示連接到子電路的外部節(jié)點。
(13)后面的“RLGCfile=STL_1S_1R_41.rlc l=0.0010922”表示子電路引用名為ntl_rlgc.inc的Allegro PCB SI的模型,模型文件是STL_1S_1R_41.rlc,其長度是0.001 092 2m(43mil)。
(14)在編輯窗口查看W-element文件的子電路定義.subckt COMPLETE.U15 2,注意提示信息,如圖1-5-31所示。

圖1-5-31 子電路定義
(15)注釋信息“bdrvr 18 3 19 23 22 20 21 File=ibis_models.inc Model=GTL_IO_Typical”表明了使用的連接節(jié)點和緩沖模型。
(16)選擇File→Close All菜單命令,關(guān)閉所有窗口。
(17)選擇File→Exit菜單命令,退出Model Integrity窗口。