時(shí)序就是為了維持?jǐn)?shù)據(jù)信號(hào)與其參考時(shí)鐘信號(hào)之間的相對(duì)位置,保證在時(shí)鐘上升沿或者下降沿附近的數(shù)據(jù)能夠維持穩(wěn)定,這樣數(shù)據(jù)就能被有效的讀取。怎么讓這些時(shí)序關(guān)系在系統(tǒng)運(yùn)行中有效的實(shí)現(xiàn)呢?PCB設(shè)計(jì)中,是通過定義時(shí)序參數(shù)來實(shí)現(xiàn)的,下面就來看看這些時(shí)序參數(shù)的具體含義。
這里作者按照自己的理解把時(shí)序參數(shù)分成了三類,一類是用來描述驅(qū)動(dòng)端的,一類是用來描述接收端的,還有一類是用來描述傳輸通道的。對(duì)于驅(qū)動(dòng)端,描述它的時(shí)序參數(shù)是Tco,Tco是指時(shí)鐘觸發(fā)開始到有效數(shù)據(jù)輸出的器件內(nèi)部所有延時(shí)的總和。這個(gè)參數(shù)描述了最開始信號(hào)從芯片出來的時(shí)候,時(shí)鐘與數(shù)據(jù)之間的一個(gè)位置關(guān)系。對(duì)于源同步時(shí)序,不是直接用Tco來定義的,而是使用Tvb和Tva,如下圖1
圖1
圖1中,Tvb指的是在驅(qū)動(dòng)端,時(shí)鐘上升沿之前(before)數(shù)據(jù)的有效時(shí)間;Tva指的是時(shí)鐘上升沿之后,數(shù)據(jù)的有效時(shí)間。這些參數(shù)在驅(qū)動(dòng)芯片手冊(cè)上可以查到。
對(duì)于接收端,主要是建立時(shí)間和保持時(shí)間,這兩個(gè)時(shí)序參數(shù)是時(shí)序分析中提到最多的兩個(gè)參數(shù),如下圖2所示:
圖2
看圖2,有沒有覺得和圖1很相似呢,它們都是以時(shí)鐘信號(hào)為參考。對(duì)于接收端來說,數(shù)據(jù)在時(shí)鐘信號(hào)上升沿之前的有效時(shí)間稱為建立時(shí)間,在時(shí)鐘上升沿之后的叫保持時(shí)間。和驅(qū)動(dòng)端對(duì)比,它們的叫法不一樣罷了,定義方式都是相似的。時(shí)序分析的最終目的就是要保證數(shù)據(jù)被接收端有效的讀取,所以我們?cè)谠u(píng)估一個(gè)系統(tǒng)的時(shí)序是否滿足要求,是通過評(píng)估建立時(shí)間和保持時(shí)間的裕量來實(shí)現(xiàn)的。
對(duì)于傳輸通道來說,是通過飛行時(shí)間來描述的。飛行時(shí)間包括最大飛行時(shí)間和最小飛行時(shí)間。最大最小飛行時(shí)間和傳輸線的長度有關(guān),也和負(fù)載的輕重有關(guān),負(fù)載較重會(huì)導(dǎo)致上升時(shí)間變緩,定義方式如下圖3
在理解這些時(shí)序參數(shù)的含義之后,就可以進(jìn)行時(shí)序裕量的計(jì)算了。這里以數(shù)據(jù)信號(hào)為例進(jìn)行說明,我們知道,DDR總線中,數(shù)據(jù)信號(hào)是參考DQS的,在寫方向:
Data信號(hào)從驅(qū)動(dòng)到接收總的延時(shí)為:Tdata=Tco_data+Tflt_data (1)
DQS信號(hào)從驅(qū)動(dòng)到接收總的延時(shí)為:Tstrobe=Tco_strobe+Tflt_strobe+Tdelay (2)
式中:Tco和Tflt分別代表數(shù)據(jù)、選通信號(hào)在器件的內(nèi)部延遲和信號(hào)傳輸?shù)娘w行時(shí)間;Tdelay是指數(shù)據(jù)信號(hào)和選通信號(hào)之間的延遲,由系統(tǒng)內(nèi)延時(shí)器件決定。建立時(shí)序裕量的公式為:Tsetup_margin=Tstrobe-Tdata-Tsetup(3)
把式(1)和式(2)帶入得式(3)得:
Tsetup_margin=Tco_strobe+Tflt_strobe+Tdelay- (Tco_data+Tflt_data)-Tsetup(4)
式中:Tsetup表示接收數(shù)據(jù)端數(shù)據(jù)的建立時(shí)間,從器件手冊(cè)上獲取;將數(shù)據(jù)和Strobe信號(hào)在器件內(nèi)的延時(shí)差異定義為Tvb,其值從器件手冊(cè)上獲?。?/p>
Tvb=Tco_strobe+Tdelay-Tco_data (5)將PCB走線引起的延時(shí)差異,定義為Tpcb_skew:Tpcb_skew= Tflt_data- Tflt_strobe(6)將式(5)和式(6)帶入式(4),這樣可以得到一個(gè)簡單的建立時(shí)間裕量方程:
Tsetup_margin=Tvb-Tsetup- (Tflt_data(max)-Tflt_strobe(min))(7)
使用同樣的方法分析,保持時(shí)間裕量:
Thold_margin=(Tco_strobe+Tflt_strobe+Tdelay)-(Tco_data+Tflt_data)-Thold(9)
同樣定義:
Tva=Tco_strobe+Tdelay-Tco_data(10)
Tpcb_skew=Tflt_data-Tflt_strobe(11)
Thold_margin=Tva-Thold+(Tflt_data(min)-Tflt_strobe(max))(12)
綜上所述,我們可以看出,對(duì)于DDR的時(shí)序來說,影響時(shí)序裕量的關(guān)鍵因素是驅(qū)動(dòng)芯片的Tva與Tvb,以及接收端的建立時(shí)間與保持時(shí)間。我們布線可以控制的只是數(shù)據(jù)與選通時(shí)鐘之間的長度差值。數(shù)據(jù)線與數(shù)據(jù)選通線長度的差值有正負(fù)之分,從(7)和(9)式可以看出,建立時(shí)間很保持時(shí)間與Tpcb_skew之間的關(guān)系,在增大建立時(shí)間的時(shí)候必然會(huì)犧牲保持時(shí)間。所以在布線的時(shí)候,數(shù)據(jù)與數(shù)據(jù)選通即DQ與同組的DQS之間應(yīng)該保持嚴(yán)格的等長,這樣可以減少Tpcb_skew,增大建立時(shí)間裕量。
時(shí)序問題是很復(fù)雜的,文中分析的情況沒有考慮Jitter與串?dāng)_。我們也很少會(huì)手動(dòng)計(jì)算一個(gè)系統(tǒng)的時(shí)序關(guān)系,一般會(huì)借助軟件分析。
編輯:hfy
-
PCB設(shè)計(jì)
+關(guān)注
關(guān)注
394文章
4692瀏覽量
85894 -
Data
+關(guān)注
關(guān)注
0文章
62瀏覽量
38295
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論