楊 菊
(西安電子科技大學(xué)CAD研究所,陜西西安 710071)
眼圖[1]包含了多種信息,其參數(shù)是對信號質(zhì)量的衡量;眼寬和抖動;眼高反映的是噪聲信息,眼寬及抖動反映的是時序信息。
傳統(tǒng)的高速信令仿真方法是用隨機數(shù)向量作為輸入,進(jìn)行時域仿真??墒褂糜行У姆抡婀ぞ邔崿F(xiàn)眼圖的期望結(jié)果。但對于諸多高速芯片間通信系統(tǒng)的最壞情況,眼圖無法由輸入較短的隨機數(shù)準(zhǔn)確確定,當(dāng)使用大量隨機數(shù)作為輸入激勵時,仿真時間將變得過長。
Casper首先提出PDA[2]算法,該算法開創(chuàng)了快速時域仿真技術(shù)的先河,雖其仍存在兩個問題,一是無法處理驅(qū)動器輸出碼元的上升邊和下降邊不對稱問題,而對于實際IC輸出的數(shù)字信號,其上升邊和下降邊均存在輕微的不對稱,若采用OC門類輸出級,則信號的上升邊和下降邊將極為不對稱;二是無法處理器件非線性問題,如“001”和“101”產(chǎn)生的上升邊是不同的。
Lambrecht 在 專 利 中 所 提出 的 DER[3](Double Edge Responses)法雖解決了上升邊和下降邊不對稱問題,但此方法最大的問題是無法得到最壞的碼形和眼圖;Drabkin等人也提出了類似的算法[4]。
清華大學(xué)史睿博士提出的方法[5]可解決上升邊和下降邊不對稱的問題,但其依舊無法處理非線性問題。
J.Ren 提出了 MER(Multiple Edge Responses)[6]方法,不但解決了不對稱問題,同時還解決了器件非線性問題,其所撰寫的論文為IEEE Advanced Packaging(2008)最佳論文。但J.Ren對MER中抖動的計算敘述過于籠統(tǒng),最后驗證中僅給出了眼高的對比數(shù)據(jù)而未給出眼寬的對比數(shù)據(jù)。
本文提出了一種BTDS方法,其綜合了MER和DER,并重構(gòu)眼圖,即可解決邊沿不對稱問題又可得到最壞的眼圖及碼形序列,克服了DER的缺陷。BTDS可得到精確的眼高、眼寬及抖動數(shù)據(jù),較MER更優(yōu)。此外,BTDS方法優(yōu)于PDA,且可得到PDA能求得的一切數(shù)據(jù),目前該方法也已付諸工程實現(xiàn)。
BTDS在“求向量”和“解向量”上均作出了創(chuàng)新。在“求向量”上,BTDS考慮了多種情況,從而提高了精度;在“解向量”上采用了類似于MER的格子法能捕獲最壞碼形,且整體精度高于MER。
如圖1所示,眼圖的輪廓應(yīng)由最壞的0、最好的0、最好的1和最壞的1構(gòu)成。其中,最壞的1和最壞的0構(gòu)成了輪廓的內(nèi)圈。
圖1 眼圖的構(gòu)成
再深入剖析左半內(nèi)圈的構(gòu)成。文中在此不再用最好的1和最好的0這一概念,而使用最好的上升邊和最好的下降邊這種提法。觀察發(fā)現(xiàn),眼圖左半內(nèi)圈由最壞的1和最壞的0構(gòu)成。而眼圖的右半內(nèi)圈由最好的下降邊和最好的上升邊構(gòu)成。其中,最好的下降邊的最好定義為:在最壞的0基礎(chǔ)上使其整體電壓值下降得最多的邊沿,如圖2所示。而最好的上升邊的最好定義為在最壞1基礎(chǔ)上使其整體電壓值上升得最多的邊沿,如圖2所示。
圖2 眼圖的左半圈
眼圖重要的參數(shù)包括眼高,眼寬及抖動。這些參數(shù)其實可利用圖2得到,即得到眼圖的左半圈也就得到了眼圖所有重要參數(shù)的信息。因眼圖是位周期的疊加,故若將圖2中的最好下降邊向右平移一個UI,然后將最好上升邊向右平移一個UI,即可得到眼圖的內(nèi)輪廓,如圖3所示。
圖3 眼圖的內(nèi)輪廓
1.2.1 BTDS之“求向量”
對于“求向量”首先討論ISI。導(dǎo)致ISI的主要原因從頻域上講是因通道帶寬受限,上升邊或下降邊中包含了寬帶的頻譜消息;從時域上講是因損耗,其與損耗角正切有關(guān)。
由圖2可知,眼圖內(nèi)圈的左半部分由最壞的1和最壞的0構(gòu)成。上升邊響應(yīng)是從有效起點開始至截止。
從有效起點開始算起,上升邊和下降邊向量可表示為
其中,φi表示UI(位周期)內(nèi)點的相位,即代表第幾組;n表示每組內(nèi)的點標(biāo)號;Tr為上升邊響應(yīng);Tf為下降邊響應(yīng);R(φi,n)為屬于相位φi的第n個向量元素,同理可知 F(φi,n)。
其次,在研究串?dāng)_時,將會產(chǎn)生串?dāng)_影響的傳輸線定義為動態(tài)線[1];將受到動態(tài)線影響的傳輸線定義為靜態(tài)線[1]。根據(jù)對稱性,在動態(tài)線上加激勵,靜態(tài)線感受到的電壓波動與在靜態(tài)線上加激勵,動態(tài)線上感受到的電壓波動,此二者應(yīng)完全等價。
用公式概括以上關(guān)于串?dāng)_所述即為
其中,φi表示每個點的相位,即代表第幾組;n表示每組內(nèi)的點標(biāo)號,Ψr為上升邊響應(yīng);Rξ(φi,n)為串?dāng)_響應(yīng)中屬于相位φi的第n個向量元素,同理可知Fξ(φi,n)。
綜上所述,當(dāng)對動態(tài)線加入激勵,可知
其中,f(n)為一個UI寬度的激勵響應(yīng);AISI為ISI對眼圖的累積電壓;ACrosstalk為串?dāng)_對眼圖的累積電壓;Eyeideal為理想眼圖。
1.2.2 BTDS之格子法“解向量”
格子法是基于一種動態(tài)編程的方法,依靠其可得到最壞的累積電壓。其基本表達(dá)式如下
其中
N為邊沿響應(yīng)長度除以 UI的整數(shù)商。rΔt與 fΔt是相位為Δt的邊沿響應(yīng)。以上公式就是BTDS的核心思想,一切討論均將圍繞其展開。
對于一階BTDS,式(4)的意義在于:對于下一比特,Ab-m,…,b-1(j+1)只可能來自于 A1(j)或 A0(j)再附上b-1。如圖4所示,格子里的數(shù)字代表時刻j的累積電壓,即 Ab-m,…,b-1(j)。上升邊對后續(xù)信號影響標(biāo)注為圖中上升箭頭附著的數(shù)字,下降邊為下降箭頭附著的數(shù)字,不翻轉(zhuǎn)則為0。若已得到了上升邊和下降邊向量,圖4中上升下降箭頭線上的數(shù)字代表在j=0時刻加邊沿在主光標(biāo)上累積的電壓值,圖4格子中標(biāo)注的數(shù)字為當(dāng)前時刻光標(biāo)最壞累計電壓值。但需注意的是,假設(shè)此刻要求解最壞的1,即在理想1的穩(wěn)態(tài)電壓值上進(jìn)行疊加,因此第二排格子的最后一個將無法取到,即將其置灰;若要求最壞的0,則第一排格子的最后一個將被置灰。首先,最壞的累積電壓為0.3和-0.3。按照上述,下一個最壞累積電壓從格子上來觀察應(yīng)為-0.2和-0.3,則00或01序列被選中。如此類推,由于往黑色的格子路線不能走通,原本最后一列應(yīng)有兩個累積電壓值則變成僅剩一個,故即可得到主光標(biāo)處的累積電壓也可得到相應(yīng)的碼形。
這里,以向量F及R對BDTS算法進(jìn)行說明,并與DER方法進(jìn)行了比較。
圖4 格子法原理圖
假設(shè) F≈R,F(xiàn)=[-0.1 0.1 0.3 0.2 -0.05-0.05]及 R=[0.1 -0.1 -0.3 -0.2 0.05 0.05]。F≠R,設(shè)F=[-0.1 0.1 0.3 0.2 -0.05 -0.05]及R=[0.1 -0.1 0.11 -0.22 0.05 0.05]。
通過表1的比較結(jié)果可看出,在計算最壞碼型上,BDTS算法給出的結(jié)果較DER算法更為精確,所以計算出的眼圖也更為精確。
表1 算法比較
BTDS_Tools軟件的開發(fā)環(huán)境及I/O參數(shù)為:操作系統(tǒng)為Microsoft Windows XP;電腦配置為Intel(R)Pentium(R)4 CPU 3.2 GHz 2.0 GB內(nèi)存;開發(fā)軟件為Matlab@R2011b;仿真軟件為Hspice2009。
BTDS_Tools軟件的I/O參數(shù):輸入?yún)?shù)為.tr0格式的文件,位周期(UI)及參考電壓;輸出參數(shù)為眼高眼寬數(shù)值,眼圖的輪廓及眼圖。
BTDS_Tools的界面如圖5所示,利用BTDS_Tools可產(chǎn)生眼圖輪廓。利用BTDS_Tools生成的碼形文件放入Hspice中仿真得到的tr0文件又可被BTDS_Tools所讀,從而繪制眼圖,如圖6所示。
圖5 BTDS_Tools產(chǎn)生眼圖輪廓界面
圖6 BTDS_Tools讀取tr0眼圖界面
decks參數(shù)設(shè)置:上升邊為20 ps,下降邊為50 ps,UI為 750 ps,步長 10 ps,仿真時間 40 ns。
通常,驗證PDA或BTDS等方法在某場合下是否適用有一個評判標(biāo)準(zhǔn),即其預(yù)測的眼圖結(jié)果與用其得到的碼形放入Hspice仿真得到的眼圖結(jié)果應(yīng)幾近一致。用公式表示即式(5)與式(6)
其中,η為誤差;Hpredict為預(yù)測的眼高結(jié)果;為HHspice對Hspice其產(chǎn)生的碼形仿真得到的眼高結(jié)果;Wpredict為預(yù)測的眼寬結(jié)果;WHspice為Hspice對其產(chǎn)生的碼形仿真得到的眼寬結(jié)果。
首先將tr0文件導(dǎo)入PDA_Tools,獲得眼圖眼高,眼寬及抖動參數(shù)值。然后將依據(jù)PDA得到的碼形導(dǎo)入Hspice中仿真,再記錄此時得到的眼高、眼寬及抖動值。實驗結(jié)果表明,PDA_Tools預(yù)測得到的眼高為666.6 mV,眼寬則為531.4 ps;Hspice中測量得到的眼高為809 mV,眼寬為608 ps。眼高及眼寬誤差均超過10%,這印證了結(jié)論:PDA無法處理上升邊和下降邊不對稱的情況。
若采用BTDS,得到的眼高預(yù)測結(jié)果為793 mV,眼寬則為698.4 ps;用BTDS得到的碼形放入Hspice仿真得出的眼高為795 mV,眼寬則為697 ps,如圖7所示。并可得利用BTDS眼高的誤差為0.25%<5%。
圖7 BTDS預(yù)測的輪廓及眼圖
由圖8可知,用BTDS預(yù)測的抖動為50.24 ps。將預(yù)測得到的碼形放入Hspice中驗證,得到的抖動為51.4 ps。統(tǒng)計以上結(jié)果,如表2所示。通過比較可看出,BTDS算法計算結(jié)果明顯優(yōu)于PDA算法。
圖8 BTDS生成的碼形放入Hspice仿真得到的眼圖
表2 各方法統(tǒng)計結(jié)果
本文對PDA算法進(jìn)行了分析,證明了PDA的局限性,借鑒MER、DER的思想,提出BTDS算法思想,并給出了BTDS的結(jié)果,從而論證了BTDS的正確性。通過與PDA、DER算法比較,看出BDTS算法更優(yōu)于其他算法。BTDS即能保證最壞眼圖計算的精確度,且又保證了輸出碼形的正確性,BTDS_Tools軟件則是BTDS工程化的結(jié)果。雖然一階BTDS不能對涵蓋非線性的驅(qū)動器的系統(tǒng)進(jìn)行正確分析,但只需對BTDS進(jìn)行簡單升級即可實現(xiàn)此目的。
[1]Eric Bogatin.信號完整性分析[M].李玉山,李麗平,譯.北京:電子工業(yè)出版社,2008.
[2]Bryan K Casper,Matthew Haycock,Randy Mooney.An accurate and efficient analysis method for Multi-Gb/s chip-to- chip signaling schemes[C].IEEE Conference Publications,VLSI Circuits Digest of Technical Papers,2002:54-57.
[3]Lambrecht F,Huang C C,F(xiàn)ox M.Technique for determining performance characteristics of electronic systems[P].USA:Patent 6775809,2002.
[4]Drabkin V,Houghton C,Kantorovich I.et al.A periodic resonant excitation of microprocessor power distribution systems and the reverse pulse technique[C].IEEE Electrical Performance of Electronic Packaging Conference,2002.
[5]Shi Rui,Yu Wenjian,Cheng Chungkuan,et al.Efficient and accurate eye diagram prediction for high speed signaling[C].IEEE/ACM International Conference,2008.
[6]Ren J,Oh D.Multiple edge responses for fast and accurate system simulations[J].IEEE Transactions on Advanced Packaging,2008,31(4):741 -748.