聶俊英
(西安睿控創(chuàng)合電子科技有限公司,陜西 西安 710071)
隨著高速信號在單板設(shè)計(jì)中的應(yīng)用越來越廣泛,高速數(shù)字信號快速上升引起的模擬效應(yīng)對單板設(shè)計(jì)的影響也越來越大,由此產(chǎn)生了一系列信號完整性、傳輸線效應(yīng)、阻抗匹配、時(shí)序冗余、電源完整性等問題。而在已有的PCB(Printed Circuit Board,印制電路板)上發(fā)現(xiàn)和分析這些問題是一件非常困難的事情,即使找到了問題,對于一個已完成的PCB 要解決這些問題也要花費(fèi)大量的時(shí)間和費(fèi)用。如果在設(shè)計(jì)初期和設(shè)計(jì)過程中就考慮這些方面的影響,修改同樣的問題所花費(fèi)的時(shí)間和費(fèi)用就少得多,甚至能避免產(chǎn)生這樣的問題。利用Cadence 公司強(qiáng)大的EDA 仿真軟件SigXplorer 就是一種有效的方法,可在PCB 設(shè)計(jì)前期和后期對高速信號進(jìn)行仿真和分析,并根據(jù)仿真結(jié)果生成約束條件導(dǎo)入到PCB 設(shè)計(jì)工具中,作為PCB 布線的約束。
要利用SigXplorer 進(jìn)行仿真,必須要有所要仿真器件的 IBIS ( Input/Output Buffer Information Specification,一種基于V/I曲線的對I/O BUFFER 快速準(zhǔn)確建模的方法)模型。由于IBIS 模型是行為級模型,一般都可以通過公開的渠道獲得器件的IBIS 模型。啟動SigXplorer 后,通過菜單Analyze→library 打開庫瀏覽器,在瀏覽器中可以將IBIS 模型轉(zhuǎn)換為SigXplorer所認(rèn)識的DML(Data Manipulation Language,數(shù)據(jù)操縱語言)來進(jìn)行分析。將DML 格式文件裝入庫管理列表中后就可以進(jìn)行仿真了。本文主要介紹3 種類型仿真,即信號完整性仿真(Signal Integrality Simulating)、時(shí)序仿真(Timing Simulating)和拓?fù)浣Y(jié)構(gòu)仿真(Topology Simulating)。仿真的對象可以在PCB 中自動提取,也可以手工建立。
目前,高速電路設(shè)計(jì)領(lǐng)域,隨著IC(Internal Circulation,集成電路)輸出開關(guān)速度的提高,不管信號周期如何,幾乎所有設(shè)計(jì)都遇到了信號完整性問題。信號完整性問題主要指信號的過沖和阻尼振蕩現(xiàn)象。SigXplorer 設(shè)計(jì)工具可以仿真實(shí)際物理設(shè)計(jì)中的各種參數(shù),對系統(tǒng)中的信號完整性問題進(jìn)行定量、定性的分析。根據(jù)傳輸線理論,如果一個信號在傳輸線末端的阻抗沒有被匹配端接,那么將會在不連續(xù)端被反射,信號的一部分將會反射回源端[1]。當(dāng)反射信號到達(dá)源端時(shí),如果源端阻抗不等于傳輸線阻抗另一個反射也將產(chǎn)生。因此,如果傳輸線的兩端都不連續(xù)的話,信號將會在驅(qū)動和接收之間來回反射,導(dǎo)致接收端波形產(chǎn)生過沖和振蕩。如果過沖太大,將會損壞芯片的內(nèi)部結(jié)構(gòu),使它失效。一般來說,上、下過沖不要超過0.8 V;最后還要注意振蕩,一般不要超過3 個明顯的振蕩波形。圖1 為未加任何處理情況下的仿真模型以及仿真得到的接收端波形,從圖中可以看到,過沖超過了0.8 V,且振蕩現(xiàn)象明顯。
圖1 未加串聯(lián)匹配電阻仿真得到的波形
利用以下3個方法可以減輕反射帶來的負(fù)面影響:①降低系統(tǒng)頻率以便在另一個信號加到傳輸線上之前傳輸線的反射到達(dá)穩(wěn)態(tài),這個對于高速系統(tǒng)通常是不可能的;②縮短PCB 走線以便反射在短時(shí)間達(dá)到穩(wěn)態(tài),但是這樣做會增加PCB 板層,成本提高很多,不切實(shí)際;③在傳輸線的兩端用等于線的特征阻抗的電阻端接以減少甚至排除反射[2]。其中串行端接是最常用的一種端接方式,通過在盡量靠近源端的位置串行插入一個電阻R(典型值為10~75 Ω)到傳輸線中實(shí)現(xiàn)。在上個例子中,在驅(qū)動器端端接一個50 Ω電阻并且仿真得到的波形如圖2 所示,從圖中可以看到,加了串行端接電阻后過沖明顯減小,并且振蕩現(xiàn)象得到很大緩解,波形很平滑,符合設(shè)計(jì)的要求。一般來說,端接電阻越大,吸收反射的效果越好,但是也不能加的太大,一般在30~70 Ω之間,否則會因?yàn)殡娮杼螅?qū)動器驅(qū)動能力不足導(dǎo)致接收端波形出現(xiàn)回溝現(xiàn)象。對于高頻率時(shí)鐘信號,盡量不要出現(xiàn)1 個驅(qū)動源同時(shí)驅(qū)動2 個以上負(fù)載的情況。如果確實(shí)需要接2 個以上負(fù)載,最好使用時(shí)鐘驅(qū)動器。對時(shí)鐘信號的仿真,除了滿足一般信號的信號完整性要求外,還要求信號具有良好的單調(diào)性(上升沿和下降沿)。這是為了防止時(shí)鐘信號在邏輯電平門限附近多次穿越。
圖2 加串聯(lián)匹配電阻后仿真得到的波形
根據(jù)芯片間信號傳遞方式的不同,信號類型可分為同步和異步。同步信號是通過時(shí)鐘來同步數(shù)據(jù)傳輸,有嚴(yán)格的時(shí)序關(guān)系,時(shí)序仿真主要針對的就是同步信號。對于異步信號,沒有時(shí)鐘作為基準(zhǔn),而且工作頻率較低,時(shí)序容易滿足,一般不需要時(shí)序仿真,主要關(guān)注信號的質(zhì)量,如單調(diào)性、過沖等。時(shí)序仿真的目的是通過電路原理、器件手冊來獲得一個最惡劣條件下的時(shí)序最大可用空間,并通過Cadence 仿真軟件計(jì)算出在滿足這個條件下的元器件布局布線約束。根據(jù)時(shí)鐘傳遞方式不同,同步信號可以分為外同步、源同步,2 種同步的差別在于時(shí)鐘和數(shù)據(jù)的相對關(guān)系,如圖3、圖4 所示。外同步是指數(shù)據(jù)在2 個芯片間傳輸時(shí),時(shí)鐘由另一塊芯片提供的信號類型。同步時(shí)鐘不是由發(fā)送數(shù)據(jù)或接收數(shù)據(jù)的芯片提供,一般有獨(dú)立的時(shí)鐘驅(qū)動器。外同步方式時(shí)序分析的要點(diǎn)是用發(fā)送數(shù)據(jù)時(shí)鐘的下一個時(shí)鐘來接收數(shù)據(jù)。這種結(jié)構(gòu)應(yīng)用的場合比較多,比如處理器外接以太網(wǎng)PHY(物理層)的情況。
圖3 外同步方式
圖4 源同步方式
在slow 和fast 這2 種狀態(tài)下,仿真結(jié)果應(yīng)該滿足以下條件:slow 狀態(tài)應(yīng)滿足TSettleDelay(建立延時(shí)值)<Tflt-max(最大飛行時(shí)間),fast 狀態(tài)應(yīng)滿足TSwitchDelay(開關(guān)延時(shí)值)>Tflt-min(最小飛行時(shí)間)。TSettleDelay和TSwitchDelay是通過SigXplorer 仿真軟件得到的,如圖5 所示,也可以在波形圖中自己手動測量。
圖5 建立延時(shí)(SettleDelay)和開關(guān)延時(shí)(SwitchDelay)
最大飛行時(shí)間Tflt-max和最小飛行時(shí)間Tflt-min是通過時(shí)序計(jì)算公式得到的。計(jì)算公式如下:
式中:Tco-max為輸出信號端輸出時(shí)鐘到數(shù)據(jù)有效的最大時(shí)間的數(shù)值;Tsu為建立時(shí)間的數(shù)值;Tjitter為時(shí)鐘抖動(cycle to cycle的抖動)的數(shù)值;Tskew為時(shí)鐘偏移的數(shù)值,這是指時(shí)鐘驅(qū)動器不同輸出端output to output skew;Tmargin-fast和Tmargin-slow為fast和slow這2種狀態(tài)下的時(shí)序設(shè)計(jì)余量的數(shù)值,一般可取300 ps;Tcycle為時(shí)鐘周期的數(shù)值;Tco-min為輸出信號端輸出時(shí)鐘到數(shù)據(jù)有效的最小時(shí)間的數(shù)值;Thd為保持時(shí)間的數(shù)值。
以上參數(shù)可以通過查驅(qū)動源、接收器、時(shí)鐘驅(qū)動器的數(shù)據(jù)手冊找到。所有的參數(shù)都得到后,就可以計(jì)算出最大飛行時(shí)間Tflt-max和最小飛行時(shí)間Tflt-min了。通過判斷上面列出的Tmargin-fast和Tmargin-slow2 個條件就可以知道時(shí)序是否能滿足。對于速度很高的網(wǎng)絡(luò)或復(fù)雜拓?fù)洌袝r(shí)會難以同時(shí)滿足slow、fast 條件,此時(shí)應(yīng)保證滿足slow 狀態(tài),fast 狀態(tài)可適當(dāng)放寬。此外,當(dāng)時(shí)序不滿足時(shí),也可以通過調(diào)整PCB 走線來改變建立延時(shí)和開關(guān)延時(shí)。源同步方式是在送數(shù)據(jù)信號的同時(shí)提供時(shí)鐘信號或鎖存信號,比較常見的CPU(Central Processing Unit/Processor,中央處理器)外接SDRAM(Synchronous Dynamic Random-Access Memory,同步動態(tài)隨機(jī)存儲器)就是源同步方式。由于源同步方式中時(shí)鐘始終在數(shù)據(jù)中間,這時(shí)就沒有Tco的概念,而是使用輸出的setup 和hold 參數(shù)來表示時(shí)鐘和數(shù)據(jù)的相位關(guān)系。由于芯片輸出時(shí)已經(jīng)保證了setup 和hold time,那么設(shè)計(jì)時(shí)主要是要保證時(shí)鐘到達(dá)接收端后,也滿足接收芯片的setup 和hold 時(shí)間要求,發(fā)送和接收的2 個采樣窗口能夠匹配(最好在中間),那么時(shí)序就滿足了。首先要通過仿真分別得到時(shí)鐘和數(shù)據(jù)的飛行時(shí)間(從驅(qū)動源到接收端總的延時(shí)時(shí)間),飛行時(shí)間的含義和測量方法如圖6 所示。
圖6 飛行時(shí)間的含義和測量方法
時(shí)鐘和數(shù)據(jù)線的飛行時(shí)間分別表示為Tflt-clk(時(shí)鐘線飛行時(shí)間)和Tflt-data(數(shù)據(jù)線飛行時(shí)間),首先定義一下方向:若Tflt-clk>Tflt-data,則Tclk-data-skew(時(shí)鐘線和數(shù)據(jù)線之間的時(shí)間偏差)=Tflt-clk-Tflt-data,為正。
時(shí)序計(jì)算公式如下:
式中:Tsu-out為輸出的建立時(shí)間的數(shù)值;Tsu-in為輸入的建立時(shí)間的數(shù)值;Thd-out為輸出的保持時(shí)間的數(shù)值;Thd-in為輸入的保持時(shí)間的數(shù)值。
即Tclk-data-skew=[(Thd-out-Thd-in)-(Tsu-out-Tsu-in)]/2。
通過調(diào)節(jié)時(shí)鐘和數(shù)據(jù)之間的偏移量Tclk-data-skew,可以將采樣窗口正好落在數(shù)據(jù)中間。
當(dāng)一個驅(qū)動源驅(qū)動多路負(fù)載時(shí)必須選用合適的拓?fù)浣Y(jié)構(gòu)以達(dá)到最佳的傳輸效果。常見的點(diǎn)到多點(diǎn)的拓?fù)浣Y(jié)構(gòu)有樹狀拓?fù)浣Y(jié)構(gòu)、菊花鏈拓?fù)浣Y(jié)構(gòu)、星型拓?fù)浣Y(jié)構(gòu)[3]。樹狀拓?fù)溥m合接收器比較多而分散的場合,但每次分支的數(shù)量盡量小于3,否則阻抗匹配不好做。給每條分支都加源端串連電阻,阻值大小根據(jù)仿真結(jié)果選定。這種結(jié)構(gòu)的好處是分支等長的限制可適當(dāng)放松。樹狀拓?fù)湫枰?qū)動源的驅(qū)動能力比較強(qiáng),帶的負(fù)載少。菊花鏈拓?fù)浣Y(jié)構(gòu)需要布局時(shí)負(fù)載間隔均衡放置,比如CPU 和外部SDRAM 之間的總線可以采用這種方式。在源端加串連匹配電阻可以顯著改善接收端的波形。星型拓?fù)湟惨筘?fù)載均勻放置、傳輸線等長、適合驅(qū)動器居中、負(fù)載均勻分布在外圍圓周上的布局。在源端加一個串連匹配電阻。數(shù)據(jù)線或者地址線常常有一個驅(qū)動帶多個負(fù)載的情況,由于數(shù)據(jù)或者地址線一般都很多,不可能為一根線加三四個電阻,一般情況是在源端加一個匹配電阻,所以一般采用菊花鏈或者星型拓?fù)浣Y(jié)構(gòu)。圖7 為66 M 頻率的數(shù)據(jù)線一驅(qū)四采用菊花鏈拓?fù)涞睦樱抡娴玫降牟ㄐ芜^沖很小,有輕微振蕩現(xiàn)象,總的來說符合設(shè)計(jì)要求。
圖7 菊花鏈拓?fù)浣Y(jié)構(gòu)下仿真波形
運(yùn)用SigXplorer 設(shè)計(jì)工具進(jìn)行系統(tǒng)級前仿真可以驗(yàn)證設(shè)計(jì)方案的可實(shí)現(xiàn)性,根據(jù)設(shè)計(jì)對SI(信號完整性)與時(shí)序的要求來選擇關(guān)鍵元器件,優(yōu)化系統(tǒng)時(shí)鐘網(wǎng)絡(luò)及系統(tǒng)各部分的延遲、選擇合理的拓?fù)浣Y(jié)構(gòu),調(diào)整PCB 的元器件布局、確定重要網(wǎng)絡(luò)的端接方案。力爭在設(shè)計(jì)階段解決潛在的問題,減少單板改板的次數(shù),從而降低成本,縮短研發(fā)周期。