基于FPGA的異步LVDS過(guò)采樣的研究和實(shí)現
摘要:針對LVDS接口,研究并實(shí)現了一種基于FPGA的LVDS過(guò)采樣技術(shù),重點(diǎn)對LVDS過(guò)采樣技術(shù)中系統組成、ISERDESE2、時(shí)鐘采樣、數據恢復單元、時(shí)鐘同步狀態(tài)機等關(guān)鍵技術(shù)進(jìn)行了描述,并基于Xilinx FPGA進(jìn)行了驗證,傳輸速率達到了1.25Gbps。文章的研究為基于FPGA實(shí)現系統之間的高速互連具有一定的工程參考價(jià)值。
本文引用地址:http://dyxdggzs.com/article/201610/308467.htm0 引言
在數字系統互聯(lián)設計中,高速串行傳輸方式正逐步替代并行傳輸方式成為主流。作為串行傳輸標準的一種,低電壓差分信號傳輸(LVDS)接口具有高速率、低功耗、低噪聲和低電磁干擾等優(yōu)點(diǎn),廣泛應用于高速數字系統設計中。而在實(shí)際應用中,采用現場(chǎng)可編程門(mén)陣列(FPGA)實(shí)現高速LVDS是一種性?xún)r(jià)比較高的技術(shù)途徑。
隨著(zhù)半導體工藝的進(jìn)步,FPGA的性能和集成度在不斷提高,在FPGA芯片中均集成SelectIO資源,通過(guò)配置邏輯資源和I/O,可以生成支持LVDS標準的接口,實(shí)現高速LVDS接口互聯(lián)通信。在傳統的LVDS互連設計中,均采用同步采樣方式,在發(fā)送端,一組數據伴隨一個(gè)時(shí)鐘同時(shí)傳輸,在接收端,利用一個(gè)時(shí)鐘去采集數據。在Xilinx最新的7系列器件中,支持一種異步過(guò)采樣方法,當采樣的數據時(shí)鐘相近時(shí)(±100ppm)利用SelectIO資源中的ISEKDES2原語(yǔ)可以實(shí)現4X最高頻率為1.25Gbps的異步過(guò)采樣。
本文介紹了一種基于FPGA實(shí)現異步LVDS過(guò)采樣的技術(shù),重點(diǎn)對系統組成、ISERDESE2、時(shí)鐘采樣、數據恢復單元、時(shí)鐘同步狀態(tài)機等關(guān)鍵技術(shù)進(jìn)行了描述,并基于Xilinx FPGA進(jìn)行了驗證,傳輸速率達到了1.25Gbps。
1 異步過(guò)采樣系統組成
本文采用Xilinx公司的7系列FPGA作為核心器件,基于SelectIO資源實(shí)現了1.25Gbps的4X異步LVDS過(guò)采樣技術(shù)。系統中包括ISERDESE 2、OSERDESE2、IDELAYE2、IDELAYCTRL、MMCME2、數據恢復單元(DRU)和時(shí)鐘對齊狀態(tài)機等功能單元,如圖1所示。

對于輸入的1.25Gbps數據流,復制成兩路進(jìn)入ISERDESE2,實(shí)現4X采樣。ISERDESE2/OSERDESE2負責完成輸入數據的串并/并串轉換。
MMCME2負責將外部輸入的125MHz時(shí)鐘倍頻產(chǎn)生各種不同的時(shí)鐘,提供給ISERDESE2/OSERDESE2、DRU、時(shí)鐘對狀態(tài)機等邏輯使用。其中,CLK和CLK90頻率為625MHz,通過(guò)BUFIO提供給ISERDESE2/OSERDESE2使用,IntClk和IntClkDiv分別為625MHz和312.5MHz,通過(guò)BUFG提供給DRU、ISERDESE2/OSERDESE2并行端、內部FPGA控制等邏輯使用。ClkRef為310MHz,提供給IDELAYCTRL使用。
DRU負責完成ISERDESE2串行端數據和并行端數據之間的跨時(shí)鐘域設計。時(shí)鐘對齊狀態(tài)機負責實(shí)現BUFG和BUFIO不同時(shí)鐘域之間的相位對齊。
2 關(guān)鍵設計
2.1 ISERDESE2
相對于Virtex-5系列FPGA中的ISERDES和Virtex-6系列FPGA中的ISERDESE1相比,7系列FPGA中的ISERDESE2實(shí)現下述的不同功能:
(1)提供IDDR觸發(fā)器功能;
(2)提供一種專(zhuān)用的串并轉換器,該轉換器有特殊的時(shí)鐘和邏輯特征,用于高速源同步應用;
(3)支持存儲器模式,可支持QDR、DDR3等不同的存儲器接口;
(4)支持過(guò)采樣模式。
在以前的設計中,過(guò)采樣是通過(guò)FPGA內部的SLICE觸發(fā)器實(shí)現的,而在7系列FPGA中,過(guò)采樣是通過(guò)配置ISERDESE2實(shí)現的,如圖2所示。

2.2 時(shí)鐘采樣
MMCME2產(chǎn)生兩個(gè)時(shí)鐘CLK和CLK90用于ISERDESE2,兩個(gè)時(shí)鐘的正沿和負沿均被使用,相當于四個(gè)時(shí)鐘。對于輸入數據流,通過(guò)IBUFDS DIFFOUT復制成兩路,一路的相位沒(méi)有變化,另外一路通過(guò)IDELAYE2相位偏移45°。相位偏移過(guò)的數據送入從ISERDESE2,實(shí)現了雙倍的數據采樣率。
通過(guò)組合四個(gè)時(shí)鐘相位和兩路數據,實(shí)現了八個(gè)時(shí)鐘采樣相位,如圖3所示。

如圖3所示,通過(guò)IDELAYE2實(shí)現輸入數據的相位變化,而IDELAYE2的變化是通過(guò)IDELAYCTRL控制的。CLK和CLK90工作頻率為625MHz,0°、90°、180°和270°的時(shí)鐘沿位置分別在0、400、800和1200ps。輸入數據流頻率為1.25Gbps,相位偏移45°時(shí),數據必須延遲
200ps。IDELAYCTRL設計頻率為310MHz,單拍延遲為52ps,為了實(shí)現200ps的延遲,需延遲4拍。因此,對于主ISERDESE2,IDELAY VALUE值設為0,對于從ISERDESE2,IDELAY VALUE值設為4。
2.3 DRU
用于ISERDESE2的CLK和CLK90均為局部時(shí)鐘,只能工作在固定的I/O區域。ISERDESE2輸出數據必須從局部時(shí)鐘域(BUFIO)搬到全局時(shí)鐘域(BUFG)中進(jìn)行,需要進(jìn)行跨時(shí)鐘域(CDC)操作。
CDC操作在FPGA邏輯中以寄存器組形式實(shí)現。DRU中實(shí)現了CDC寄存器組和一些比較邏輯。
2.3.1 邊沿檢測
輸入FPGA的數據流的采樣和比較點(diǎn)見(jiàn)圖4。

數據流通過(guò)CLK0、CLK90、CLK180和CLK270四個(gè)時(shí)鐘進(jìn)行采樣,采樣點(diǎn)發(fā)生在時(shí)鐘和數據流向交叉時(shí),這些采樣點(diǎn)依據格式Qx[M or S]x進(jìn)行命名。其中,Qx表示ISERDESE2的輸出Q1、Q2、Q3或Q4,Mx或Sx表示數據輸出來(lái)源于主ISERDESE2或從ISERDESE2。
連接采樣點(diǎn)的E4[0]到E4[3]表示DRU比較數據和尋找數據邊沿的位置。四個(gè)位置點(diǎn)的公式為:

DRU邊沿檢測電路如圖5所示。檢測電路展示了數據從ISERDESE2到DRU邏輯的流程,為了優(yōu)化時(shí)序,在ISERDESE2和邏輯之間增減了一級寄存器。同時(shí)也展示了從ISERDESE2的Q4輸出端時(shí)如何存儲上一次的采樣點(diǎn)并和新一次采樣進(jìn)行比較。

2.3.2 數據選擇
當完成數據比較和邊沿檢測后,DRU需要對比較的數據進(jìn)行處理。在設計中,采用一個(gè)簡(jiǎn)單的狀態(tài)機,依據數據邊沿的位置和它遷移的位置,選擇遠離數據邊沿的位置作為采樣點(diǎn)。
由于電壓和溫度的變化,源時(shí)鐘和接收時(shí)鐘之間抖動(dòng)、相位的不同,理想的采樣點(diǎn)應該是左右移動(dòng)的。也就是說(shuō)E4[0]到E4[3]的等式值總是變化的,依據這些變化值,狀態(tài)機狀態(tài)發(fā)生遷移,如圖6所示。

表1給出了數據選擇的對應關(guān)系,其中,EQ表示當前狀態(tài)機的位置,DQ表示互連邏輯中使用的采樣值。在過(guò)采樣模式下的每個(gè)ISERDESE2是通過(guò)兩組IDDR觸發(fā)器實(shí)現的,因此DO表示應該使用哪一組觸發(fā)器作為最理想的采樣點(diǎn)。

2.4 時(shí)鐘對齊狀態(tài)機
在設計中,BUFIO和BUFG兩個(gè)時(shí)鐘域之間的相位關(guān)系不確定。為了在不同的時(shí)鐘域之間傳輸數據,需要實(shí)現CDC邏輯,兩個(gè)時(shí)鐘之間相位必須對齊。時(shí)鐘對齊電路采用了一個(gè)FPGA I/O區域內所有的I/O管腳具有相同時(shí)序特性的原理。
一個(gè)OSERDESE2被BUFG時(shí)鐘域的時(shí)鐘(IntClk、IntClkDiv)驅動(dòng),并且裝載一個(gè)固定的數據模板。OSERDESE2在IntClk頻率下輸出一個(gè)時(shí)鐘模板。通過(guò)反饋路徑,時(shí)鐘模板被相鄰的ISERDESE2捕獲,ISERDESE2工作在BUFIO時(shí)鐘域。通過(guò)這種技術(shù),可以測量不同的兩個(gè)時(shí)鐘之間的相位關(guān)系。使用MMCM中有一個(gè)小的狀態(tài)機,可以實(shí)現獨立的相位改變的能力,BUFG時(shí)鐘發(fā)生相位改變,以適應BUFIO時(shí)鐘域的相位。
3 仿真與驗證
本論文采用XC7K325T芯片異步LVDS過(guò)采樣進(jìn)行設計和實(shí)現,并采用ISIM13.3進(jìn)行仿真驗證,采用ISE13.3進(jìn)行綜合、布局布線(xiàn)、生成bit文件。
將生成的bit文件下載到Xilinx評估版KC705中,并進(jìn)行測試、驗證。實(shí)際測試結果表明:基于FPGA的異步LVDS過(guò)采樣系統功能正確,傳輸速率達到了1.25Gbps。
4 結束語(yǔ)
本文針對LVDS接口,研究并實(shí)現了一種基于FPGA的LVDS過(guò)采樣技術(shù),重點(diǎn)對LVDS過(guò)采樣中系統組成、ISERDESE2、時(shí)鐘采樣、數據恢復單元、時(shí)鐘同步狀態(tài)機等關(guān)鍵技術(shù)進(jìn)行了描述,并基于Xilinx評估板進(jìn)行了驗證。經(jīng)嚴格測試驗證表明:基于FPGA實(shí)現的異步LVDS過(guò)采樣技術(shù)功能正確,傳輸速率達到1.25Gbps。
評論