過去十年中,高速數(shù)字總線已經(jīng)獲得了令人矚目的發(fā)展,它們不僅比以往更快,而且還正在改變系統(tǒng)定時數(shù)據(jù)的方式。為提高數(shù)據(jù)吞吐量,新興的同步數(shù)字總線可以通過一套定時機制在每個時鐘周期內多次發(fā)送數(shù)據(jù)。本文將對源同步定時如何優(yōu)化高速接口時序裕量進行討論。
時序預算是對系統(tǒng)正常工作所需時序參數(shù)或時序要求的計算。為了使同步系統(tǒng)正常工作,其時序需求必須在一個時鐘周期內滿足。對時序的預算涉及到許多因素,包括對保持時間和最大工作頻率的要求。通過時序預算,可以發(fā)現(xiàn)傳統(tǒng)定時方法的局限性。
圖1顯示了一個標準定時系統(tǒng)。在該圖中,一個存儲器控 制器與一個SRAM連接。SRAM和存儲器控制器都從同一個時鐘源接收時鐘信號。假設這里有意使時鐘信號電路與電路延遲相匹配,相關時序參數(shù)如下(圖 2):存儲器控制器tSU(建立時間)、存儲器控制器tH(保持時間)、主板電路tPD(傳輸延遲)、SRAM tCO(時鐘到輸出的延遲)、SRAM tDOH(輸出數(shù)據(jù)的保持時間)、時鐘發(fā)生器tSKEW(時鐘偏移)、時鐘發(fā)生器tJIT(周期抖動)以及時鐘發(fā)生器tCYC(周期時間)。
如果考慮最壞情況下的輸入建立時間、時鐘到輸出的延遲、傳輸延遲、時鐘偏移和時鐘抖動,通過計算最高頻率就可以得到系統(tǒng)的最小周期時間。最高頻率計算如下:
tCO(max, SRAM) + tPD(max) + tSU(max, CTRL) + tSKEW(max, CLK) + tJIT(max, CLK) < tCYC
通過計算保持時間可發(fā)現(xiàn)系統(tǒng)輸出數(shù)據(jù)太快,影響了系統(tǒng)接收器件的輸入保持時間。這樣,最壞情況將發(fā)生在數(shù)據(jù)最早輸出的時候。計算公式如下:
tCO(min, SRAM) + tPD(min) - tSKEW(min, CLK) - tJIT(min, CLK) > tH(max, CTRL)
現(xiàn) 在讓我們假設SRAM和存儲器控制器的時序參數(shù)值 為:tSU=0.5ns;tH=0.4ns;tCO=0.45ns;tDOH*=-0.45ns;tSKEW=±0.2ns;tJIT=±0.2ns。在 這種情況下,我們將使用帶有雙倍數(shù)據(jù)速率(DDR)接口的高速SRAM,SRAM在每個時鐘的上升沿和下降沿驅動數(shù)據(jù)。
*tDOH < 0意味著在下一個時鐘上升沿/下降沿前數(shù)據(jù)已變得無效。所需的最小保持時間計算如下:
tDOH + tPD - tSKEW - tJIT > tH
-0.45 ns + tPD - 0.2 ns - 0.2 ns > 0.4 ns
-0.85ns + tPD > 0.4 ns
tPD > 1.25 ns
假設FR4電路板上走線的傳輸延遲為160ps/英寸。SRAM到存儲器控制器的走線長度至少有7.82 in。tPD取1.2ns,最大工作頻率可計算如下。因為SRAM有一個DDR接口,所以時序預算是基于半個時鐘周期:
tCO + tPD + tSU + tSKEW + tJIT < tCYC/2
0.45ns+1.25ns+0.5ns+0.2ns+0.2ns
2.6ns
5.2ns
192MHz>fCYC
在FR4電路板上走線的長度為7.82英寸和典型時序參數(shù)的前提下,可滿足工作頻率可高達192MHz時的時序預算要求。對于那些板空間有限的系統(tǒng),7.82英寸的最小走向長度約束就成了系統(tǒng)難以滿足的一個要求。
如 果無法增加走線延遲,那么通過使用延遲鎖定環(huán)/鎖相環(huán)(DLL/PLL)對時鐘信號進行移相以更早地捕獲數(shù)據(jù),存儲器控制器可以滿足保持時間的要求(圖 3)。存儲器控制器將必須用系統(tǒng)時鐘信號來重新同步捕獲的數(shù)據(jù)。使用這個方法將會引入額外的PLL/DLL抖動,這會降低系統(tǒng)的最大工作頻率。有了這個附 加的PLL延遲后,所需的最小保持時間就變?yōu)椋?/p>
tDOH + tPD(trace) + tPLL/DLL_DELAY - tSKEW - tJIT > tH
tCO + tPD + tSU + tSKEW + tJIT + tJIT_PLL/DLL < tCYC/2
其中,tJIT_PLL/DLL是由PLL引入的延遲。即使使用最快的SRAM和ASIC/FPGA,時鐘偏移、時鐘抖動和電路傳輸延遲也會很明顯地限制系統(tǒng)性能。
如 前所述,如果使用FR4電路板,走線延遲約為160ps/英寸。鑒于很高頻率下數(shù)據(jù)有效窗口已變?yōu)?ns(例如對250MHz的DDR器件而言)甚至更 小,這個數(shù)字是非常重要的。時鐘信號之間的偏移也會顯著減小時序裕量。我們將會看到源同步時鐘可以明顯減少傳輸延遲、偏移和抖動,使時序收斂更容易達到。
源同步定時的優(yōu)點
在 典型的源同步處理中,與每個數(shù)據(jù)字相關聯(lián)的時鐘上升沿被發(fā)送出來(DDR存儲器每個時鐘周期可能有多個數(shù)據(jù)),接收器件使用這個時鐘上升沿來鎖存數(shù)據(jù),然 后再將數(shù)據(jù)與主時鐘或公用時鐘同步。由同一個器件對時鐘信號和數(shù)據(jù)/控制信號進行同步后傳送,實際上就消除了主板電路信號相對時鐘信號的傳輸延遲。
但是采用源同步定時就需要考慮不同的主板布線。在一個帶有獨立時鐘發(fā)生器的系統(tǒng)中,該時鐘發(fā)生器為多個器件提供時鐘信號,首要的問題是電路長度的設計應使所有的時鐘沿同時到達器件,這可能需要延長連接時鐘發(fā)生器旁邊器件的走線長度。
采用源同步的方法,主要的問題是通過匹配輸出時鐘和數(shù)據(jù)信號的走線長度來保持時鐘和數(shù)據(jù)之間的相位對準。如果走線正確匹配,相對時鐘信號的數(shù)據(jù)傳輸延遲就不復存在了。
有很多種方法可以實現(xiàn)源同步定時:
1)源同步時鐘信號的上升沿對準到數(shù)據(jù)有效窗口的起始點。諸如QDR-II/DDR-II SRAM這樣的大多數(shù)DDR存儲器采用了這種方法,存儲器將時鐘信號和數(shù)據(jù)都發(fā)送到接收器。本文中將以它們作為例子進行討論。
2)QDR-II產(chǎn)生一對輸出時鐘信號CQ和/CQ,理想情況下它們之間的相位差為180°,接收器利用這兩個時鐘信號的上升沿來鎖存數(shù)據(jù)。
在兩個存儲器中,接收器都必須將此時鐘信號延遲以滿足其捕獲數(shù)據(jù)所需要的建立和保持時間。此延遲可以通過片上延遲模塊來實現(xiàn),具體可以在接收端使用PLL或DLL,或采用板上走線延遲的方法。
這兩種方法因具有頻率轉移能力而在FPGA設計中受到青睞。為在更高頻率上使用同樣的設計,可以修改FPGA代碼以改變由PLL/DLL引入的延遲。另外,ASIC總是運行在一個特定的頻率,ASIC通常會選用板上走線延遲的方法。
也有一些源同步時鐘實現(xiàn)方案,在源端將其源同步時鐘信號延遲,在數(shù)據(jù)有效窗口的中心對齊。在這種情況下,用戶可以直接實現(xiàn)源同步時鐘信號來鎖存接收器的數(shù)據(jù)(假設時鐘和數(shù)據(jù)之間的走線匹配)。
抖動的影響
抖 動可以被定義為時鐘位轉換與理想時序偏離,時鐘位轉換可能超前或滯后,這里有多種不同類型的抖動。周期間抖動是時鐘輸出位轉換中與前一個周期相應位置的偏 離(參見圖2)。周期抖動用來衡量時鐘輸出位轉換與理想時序的最大偏離。長期抖動用來衡量在多個周期的時鐘輸出位轉換中與理想時序的最大偏離,這里的“多 個周期”的具體數(shù)目取決于具體的應用和工作頻率(圖4)。
根據(jù)具體的應用,在時序預算中應考慮其中一種或所有三種類型的抖動。在同步定時環(huán)境中,產(chǎn)生輸入時鐘的時鐘源或PLL/DLL一般會引起抖動變化。在時序預算中考慮了抖動因素后,抖動(tJIT)就會顯著地縮小時序裕量,特別在高頻率下。
但是,如果在接收端時鐘和數(shù)據(jù)存在相同的抖動,就可以從時序預算中除去抖動成分(tJIT)。采用源同步時鐘的情況下也是如此,這是時鐘信號和數(shù)據(jù)由同一個 發(fā)射器件驅動并一直保持對準。將時鐘設計得像其中一個輸出時,通常就會產(chǎn)生這樣的效果。雖然仍必須考慮時鐘和數(shù)據(jù)管腳之間時鐘到輸出的時間變化,但這個參 數(shù)一般都在±100ps左右。
在某些應用中,源同步時鐘被延遲1個周期以上以鎖存數(shù)據(jù)。這種情況下,時序預算中要考慮長期抖動,這將使時序裕量減小。這種抖動也被稱為N周期抖動,N是相對于數(shù)據(jù)信號,源同步時鐘信號被延遲的周期數(shù)。當然,一般不建議將源同步時鐘信號延遲一個周期以上。
時序預算的計算
從下面的例子中可以看出,從時序預算中消除傳輸延遲可以大大改善系統(tǒng)時序裕量。圖5給出了采用源同步時鐘的SRAM的例子。
讓我們按下面步聚計算時序預算。按照設計,SRAM輸出時鐘信號的上升沿與數(shù)據(jù)有效窗口的起始邊對準。我們假設存儲器控制器通過PLL/DLL片上延遲時鐘延遲以滿足建立和保持時間。SRAM和存儲器控制器采用相同的時序參數(shù)。
假設時鐘和數(shù)據(jù)走線長度匹配,計算時序預算時就可以忽略電路傳輸延遲tPD。另外,時鐘與數(shù)據(jù)具有同樣的偏移和抖動(不包括管腳之間±100 ps的偏移),因此無需再考慮時鐘發(fā)生器抖動和偏移(tSKEW, tJIT)。
在這個系統(tǒng)中,需要考慮的另外一個參數(shù)是SRAM的tJIT:相對于數(shù)據(jù)的SRAM輸出源同步時鐘抖動。這可能是由管腳間時鐘到輸出的時間變化而引起的。
在 這個例子中,我們假設時鐘和數(shù)據(jù)走線匹配地很好。如果由于電路設計而導致走線長度出現(xiàn)差異,就必須考慮時鐘和數(shù)據(jù)信號走線長度的差異。如果時鐘信號的走線 是有意延長以延遲時鐘信號(將時鐘信號與數(shù)據(jù)有效窗口中心對準),就不用考慮此參數(shù)。假設SRAM源同步時鐘抖動為tJIT=±0.2ns,我們可以像表 中列出的那樣逐步計算最小周期時間(參見表)。要獲得非負值裕量,應滿足如下條件:
tM>0
tCYC/2-2.2ns>0
tCYC/2>2.2ns
tCYC>4.4ns
fCYC<227MHz
本例采用源同步時鐘信號,滿足建立和保持時間要求,對數(shù)據(jù)信號走線長度也沒有什么約束。計算得到的最大工作頻率是277MHz,比傳統(tǒng)時鐘同步方法提高了35MHz。注意本例中主要的頻率限制因素是控制器的建立和保持時間。
使用源同步時鐘的最優(yōu)方法
為最好地利用源同步時鐘,設計工程師應注意以下要點:
不 要使源同步時鐘的延遲時間超過一個周期。源同步時鐘的上升沿與其所驅動的數(shù)據(jù)信號是嚴格匹配的,所以時鐘和數(shù)據(jù)信號應具有同樣的抖動并互相抵消。如果將源 同步時鐘信號的上升沿延遲到下一個周期以鎖存數(shù)據(jù),那么就必須考慮另外一個抖動成分,即N周期抖動,N是相對于數(shù)據(jù)信號,時鐘信號被延遲的周期數(shù)。圖6和 圖7中給出了使用源同步時鐘的推薦方法和不推薦方法。這些例子采用QDR-II源同步時鐘(CQ和/CQ)。
注意:如果有兩個源同步時鐘,最好兩個都用到。