在FPGA中,動(dòng)態(tài)相位調(diào)整(DPA)主要實(shí)現(xiàn)LVDS接口接收時(shí)對(duì)時(shí)鐘和數(shù)據(jù)通道的相位補(bǔ)償,以達(dá)到正確接收的目的。在LVDS輸入接收時(shí),隨著單線傳輸速率不斷接近于1 Gb/s,使每位所占的時(shí)間窗不斷減小,導(dǎo)致采樣時(shí)鐘對(duì)信號(hào)線的采樣點(diǎn)很難在其有效區(qū)間進(jìn)行準(zhǔn)確采樣;再加上傳輸路徑的不同,各數(shù)據(jù)線和采樣時(shí)鐘到達(dá)接收端的延遲時(shí)間不能保證完全一致,從而帶來(lái)了各信號(hào)線之間的位偏移(Bit Skew)和字偏移(Word Skew),如下圖所示。
位偏移為采樣時(shí)鐘沿不在各數(shù)據(jù)窗口的中心位置采樣,可能會(huì)導(dǎo)致數(shù)據(jù)采樣保持時(shí)間不夠長(zhǎng),易使bit位發(fā)生瞬間突變,從而導(dǎo)致接收的數(shù)據(jù)不穩(wěn)定;字偏移是指采樣接收后的各數(shù)據(jù)信號(hào)之間不同步,使得同時(shí)在發(fā)送端發(fā)送的數(shù)據(jù)在接收端卻不能同一時(shí)刻被采樣,導(dǎo)致接收的數(shù)據(jù)無(wú)效。因此我們可能需要將時(shí)鐘的相位做出調(diào)整,使得時(shí)鐘能穩(wěn)定的采集到輸入的數(shù)據(jù)。工作的核心就是鎖相環(huán)PLL的相位調(diào)整功能,產(chǎn)生時(shí)鐘的不同相位,接著看哪些相位能正確地采集到輸入數(shù)據(jù),然后取窗口中間的一個(gè)時(shí)鐘相位,作為正常工作時(shí)的采樣時(shí)鐘。這樣接口上具有最大的時(shí)序裕量,從而保證鏈路的可靠性。
智多晶的PLL IP支持動(dòng)態(tài)相位調(diào)整功能。在IP Creator中例化PLL的IP時(shí),打開動(dòng)態(tài)相位調(diào)整功能,即可開啟PLL輸出時(shí)鐘的相位動(dòng)態(tài)調(diào)整。
IP例化示例圖
在勾選了動(dòng)態(tài)相位之后,IP會(huì)開啟動(dòng)態(tài)相位調(diào)整對(duì)應(yīng)的信號(hào)接口。其中PHASESEL[1:0]可選擇做動(dòng)態(tài)相位調(diào)整的輸出端口,“00”選擇CLKOP通道,“01”選擇CLKOS通道,“10”選擇CLKOS2通道,“11”選擇CLKOS3通道;PHASEDIR選擇相位調(diào)整方向,“1”表示相位做正向調(diào)整,“0”表示相位做負(fù)向調(diào)整;PHASESTEP為動(dòng)態(tài)相位調(diào)整的觸發(fā)信號(hào),每一個(gè)脈沖實(shí)現(xiàn)一次相位調(diào)整。
動(dòng)態(tài)相位調(diào)整的實(shí)現(xiàn)代碼如下所示,通過(guò)按鍵切換動(dòng)態(tài)相位調(diào)整的方向
使用按鍵觸發(fā)生成動(dòng)態(tài)調(diào)整的脈沖信號(hào),每一次按鍵,完成一次相位調(diào)整
下圖程序中,CH_SEL為相位調(diào)整的時(shí)鐘通道選擇,例程中設(shè)置為“01”,即實(shí)現(xiàn)動(dòng)態(tài)相位調(diào)整的通道為CLKOS
在測(cè)試中,選擇將CLKOP通道輸出的時(shí)鐘作為參考信號(hào),與CLKOS信號(hào)做對(duì)比。分別選擇了0次相位調(diào)整、18次相位調(diào)整、36次相位調(diào)整和54次相位調(diào)整,其測(cè)試結(jié)果如下圖所示。實(shí)測(cè)60調(diào)整實(shí)現(xiàn)相位360°偏移。
圖1 初始相位
圖2 18次相位調(diào)整
圖3 36次相位調(diào)整
圖4 54次相位調(diào)整
如有客戶朋友需要獲取源碼,請(qǐng)聯(lián)系智多晶的市場(chǎng)銷售人員。