本文關鍵字:
6.1.2 時序約束條件下面來具體討論一下系統時序需要滿足的一些基本條件。我們仍然以圖1-6-1的結構為例,并可以據此畫出相應的時序分析示意圖(圖1-6-8)。
在上面的時序圖中,存在兩個時序環,我們稱實線的環為建立時間環,而虛線的環我們稱之為保持時間環??梢钥吹?,這兩個環都不是閉合的,缺口的大小就代表了時序裕量的多少,因此設計者總希望盡可能增大這個缺口。同時還要注意到,每個環上的箭頭方向不是一致的,而是朝著正反兩個方向,因為整個系統時序是以時鐘上升沿為基準的,所以我們時序環的起點為系統時鐘clk in的上升沿,而所有箭頭最終指向接收端的控制時鐘CLKC的邊沿。
先來分析建立時間環:
缺口的左邊的半個時序環代表了從第一個系統時鐘上升沿開始,直到數據傳輸至接收端的總的延時,我們計為數據延時,以Tdata tot表示:
Tdata tot =Tco clkb+Tflt clkb +Tco data +Tflt data
上式中:Tco clkb是系統時鐘信號CLKB在時鐘驅動器的內部延遲;Tflt clkb 是CLKB從時鐘驅動器輸出后到達發送端(CPU)觸發器的飛行時間;Tco data是數據在發送端的內部延遲;Tflt data是數據從發送端輸出到接收端的飛行時間。
從CLKC時鐘邊沿的右邊半個時序環代表了系統時鐘到達接收端的總的沿時,我們計為時鐘延時,以Tclk tot表示:
Tclk tot =Tcycle +Tco clka +Tflt clka – Tjitter
其中,Tcycle是時鐘信號周期;Tco clka 是系統時鐘信號CLKA(第二個上升沿)在時鐘驅動器的內部延遲;Tflt clka是時鐘信號從時鐘驅動器輸出到達接收端觸發器的飛行時間;Tjitter是時鐘的抖動誤差。
因此我們可以根據建立時間裕量的定義,得到:
Tsetup margin = Tclk tot – Tdata tot – Tsetup
將前面的相應等式帶入可得:
Tsetup marin = Tcycle + Tco clka + Tflt clka – Tjitter – Tco clkb – Tflt clkb – Tco data – Tflt data – Tsetup
我們定義時鐘驅動器(PLL)的兩個時鐘輸出之間的偏移為Tclock Skew ,兩根CLOCK走線之間的時鐘偏移為TPCB Skew ,即:
Tclock Skew = Tco clkb - Tco clka;TPCB Skew = Tflt clkb - Tflt clka
這樣就可以得到建立時間裕量的標準計算公式:
Tsetup marin =Tcycle – TPCB skew –Tclock skew –Tjitter – Tco data – Tflt data-Tsetup (1.6.1)
再來看保持時間環:
對照圖1-6-8,我們可以同樣的進行分析:
Tdata delay = Tco clkb + Tflt clkb + Tco data + Tflt data
Tclock delay = Tco clka + Tflt clka
于是可以得出保持時間裕量的計算公式:
Thold margin = Tdata delay – Tclock dalay – Thold time
即: Thold margin = Tco data + Tflt data + Tclock skew + Tpcb skew – Thold (1.6.2)
可以看到,式1.6.2中不包含時鐘抖動Jitter的參數。這是因為Jitter是
指時鐘周期間(Cycle to Cycle)的誤差,而保持時間的計算和時鐘周期無關。
對于任何時鐘控制系統,如果要能保證正常工作,就必須使建立時間余量和保持時間裕量都至少大于零,即Tsetup marin >0;Thold margin >0,將公式1.6.1和1.6.2分別帶入就可以得到普通時鐘系統的時序約束條件不等式:
TPCB skew +Tclock skew +Tjitter + Tco data + Tflt data+Tsetup < Tcycle (1.6.3)
Tco data + Tflt data + Tclock skew + Tpcb skew > Thold (1.6.4)
需要注意的是:
1.數據在發送端的內部延時Tco data可以從芯片的datasheet查到,這個值是一個范圍,在式1.6.3中取最大值,在式1.6.4中取最小值。
2.數據在傳輸線上的飛行時間Tflt data在實際計算中應該取最大/最小飛行時間參數,在式1.6.3中取最大飛行時間,在式1.6.4中取最小飛行時間。
3.時鐘的偏移TPCB skew和Tclock skew也是一個變化的不確定參數,一般為+/-N ps,同樣,在建立時間約束條件1.6.3中取+Nps,而在保持時間約束條件1.6.4中取-Nps。
從上面的分析可以看到,對于PCB設計工程師來說,保證足夠穩定的系統時序最有效的途徑就是盡量減小PCB skew和信號傳輸的飛行時間,而其它的參數都只和芯片本身的性能有關。實際中經常采取的措施就是嚴格控制時鐘和數據的走線長度,調整合理的拓補結構,并盡可能減少信號完整性帶來的影響。然而,即便我們已經考慮的很周全,普通時鐘系統的本身的設計瓶頸始終是無法打破的,也就是建立時間的約束,我們在盡可能減少由PCB布線引起的信號延遲之外,器件本身的特性如Tco、Jitter、TSetup等等將成為最主要的制約因素,盡管我們可以通過提高工藝水平和電路設計技術來不斷提高數字器件的性能,但得到的效果也僅僅是在一定范圍之內提升了系統的主頻,在頻率超過300MHz的情況下,我們將不得不放棄使用這種普通時鐘系統設計。
6.2 源同步時序系統針對普通時鐘系統存在著限制時鐘頻率的弊端,人們設計了一種新的時序系統,稱之為源同步時序系統。它最大的優點就是大大提升了總線的速度,在理論上信號的傳送可以不受傳輸延遲的影響。下面我們來看看這種源同步時鐘系統的結構。
6.2.1 源同步系統的基本結構圖1-6-9是一個基本的源同步時鐘系統的結構示意圖??梢钥吹?,驅動芯片在發送數據信號的同時也產生了選通信號(Strobe),而接收端的觸發器由該選通信號脈沖控制數據的讀取,因此,這個選通信號也可以稱為源同步時鐘信號。
源同步時鐘系統中,數據和源同步時鐘信號是同步傳輸的,我們保證這兩個信號的飛行時間完全一致,這樣只要在發送端的時序是正確的,那么在接收端也能得到完全正確的時序。整個系統在時序上的穩定性完全體現在數據和選通信號的匹配程度上,包括傳輸延遲的匹配,器件性能的匹配等等,只要兩者條件完全相同,那么我們就可以保證系統的時序絕對正確,而對系統的最高時鐘頻率沒有任何限制。
當然,對于任何數據接收來說,一定的建立和保持時間都是必須滿足的,源同步時鐘系統也同樣如此,主要體現在數據信號和選通信號之間的時序要求上。最理想的情況就是選通信號能在數據信號的中央部分讀取,如圖1-6-10所示,這樣才能保證最充分的建立和保持時間。
為了保證選通信號和數據信號相對保持正確的時序,在源同步時鐘系統中是通過驅動芯片內部的數字延時器件DLL來實現(見圖1-6-9),而不是通過PCB走線來控制,因為相比較而言,DLL器件能做到更為精確的延時,同時還可以受芯片電路控制,調節起來更為方便。
6.2.2 源同步時序要求前面已經提到源同步時鐘系統設計中最重要的一點就是保證data和strobe信號之間的偏移(Skew)最小,引起這些誤差的最主要的因素就是實際系統中各器件的時序參數Tco的不同,此外還有布線上引起的差異,為了更好地說明這些Skew對時序的具體影響,下面我們還是通過時序圖分析的方法來計算一下源同步時鐘系統中信號的建立時間裕量和保持時間裕量。
首先考慮建立時間裕量:
和普通時序分析的方法一下,我們也是從建立時間環的角度考慮,參考1-6-9的結構圖,我們可以作出驅動端和接收端的時序示意圖(1-6-11)。
Tdata = Tco data +Tflt data
Tstrobe = Tco strobe + Tflt strobe + Tdelay
其中,Tco和Tflt分別代表數據/選通信號在器件的內部延遲和信號傳輸的飛行時間,Tdelay是指數據信號和選通信號之間的延遲,由系統內DLL延時器件決定,圖中假設為一個時鐘周期。
將上式帶入建立時間裕量的計算公式:Tsetup margin = Tclk – Tdata– Tsetup
可以得到:
Tsetup margin =(Tco strobe + Tflt strobe + Tdelay)- (Tco data + Tflt data) – Tsetup
如果我們將數據和Strobe信號在器件內的延時差異定義為Tvb;將PCB走線引起的延時差異定義為Tpcb skew:
Tvb = Tco data– (Tco strobe + Tdelay)
Tpcb skew = Tflt data – Tflt strobe
這樣可以得到一個簡單的建立時間裕量方程:
Tsetup margin = - Tvb – Tsetup – Tpcb skew (1.6.5)
注意:公式1.6.5中Tvb是一個負值,從公式中可以看出,如果數據和選通信號的Tco相同的話,其大小就是- Tdelay ,也就說明數據信號必須提前于選通信號發送。
再考慮保持時間裕量,如圖1-6-12,同樣分析可以得到:
Thold margin = (Tco data + Tflt data + Tdelay) – (Tco strobe + Tflt strobe) – Thold
如果定義:Tva = Tco data – Tco strobe + Tdelay,為正值;Tpcb skew定義不變。則保持時間裕量的計算公式為:
Thold margin = Tva – Thold – Tpcb skew (1.6.6)
在公式1.6.5和1.6.6中,兩個重要的參數是Tvb和Tva,Tvb表示“Valid before”,即數據在選通脈沖前有效存在的時間;Tva表示“Valid after”,指選通信號脈沖之后數據仍然有效持續的時間。這兩個時序參數一般都可以在器件的datasheet上會找到。
和普通時鐘系統相比,源同步總線在PCB布線的設計上反而更為方便,設計者只需要嚴格保證線長的匹配就行了,而不用太多的考慮信號走線本身的長度。當然,盡管源同步數據傳輸在理論上突破了頻率的限制,但隨著頻率的提高,在控制Skew上也變得越來越困難,尤其是一些信號完整性因素帶來的影響也越發顯得突出,而且目前的高速系統設計中,往往綜合應用了普通時鐘和源同步時鐘技術,比如對于地址/控制信號采用普通時鐘總線,而高速的數據傳輸則是采用源同步總線。這些對于高速PCB設計分析人員來說是一個非常嚴峻的挑戰。