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