摘要:針對LVDS接口,研究并實現了一種基于FPGA的LVDS過采樣技術,重點對LVDS過采樣技術中系統組成、ISERDESE2、時鐘采樣、數據恢復單元、時鐘同步狀態機等關鍵技術進行了描述,并基于Xilinx FPGA進行了驗證,傳輸速率達到了1.25Gbps。文章的研究為基于FPGA實現系統之間的高速互連具有一定的工程參考價值。
0 引言
在數字系統互聯設計中,高速串行傳輸方式正逐步替代并行傳輸方式成為主流。作為串行傳輸標準的一種,低電壓差分信號傳輸(LVDS)接口具有高速率、低功耗、低噪聲和低電磁干擾等優點,廣泛應用于高速數字系統設計中。而在實際應用中,采用現場可編程門陣列(FPGA)實現高速LVDS是一種性價比較高的技術途徑。
隨著半導體工藝的進步,FPGA的性能和集成度在不斷提高,在FPGA芯片中均集成SelectIO資源,通過配置邏輯資源和I/O,可以生成支持LVDS標準的接口,實現高速LVDS接口互聯通信。在傳統的LVDS互連設計中,均采用同步采樣方式,在發送端,一組數據伴隨一個時鐘同時傳輸,在接收端,利用一個時鐘去采集數據。在Xilinx最新的7系列器件中,支持一種異步過采樣方法,當采樣的數據時鐘相近時(±100ppm)利用SelectIO資源中的ISEKDES2原語可以實現4X最高頻率為1.25Gbps的異步過采樣。
本文介紹了一種基于FPGA實現異步LVDS過采樣的技術,重點對系統組成、ISERDESE2、時鐘采樣、數據恢復單元、時鐘同步狀態機等關鍵技術進行了描述,并基于Xilinx FPGA進行了驗證,傳輸速率達到了1.25Gbps。
1 異步過采樣系統組成
本文采用Xilinx公司的7系列FPGA作為核心器件,基于SelectIO資源實現了1.25Gbps的4X異步LVDS過采樣技術。系統中包括ISERDESE 2、OSERDESE2、IDELAYE2、IDELAYCTRL、MMCME2、數據恢復單元(DRU)和時鐘對齊狀態機等功能單元,如圖1所示。
對于輸入的1.25Gbps數據流,復制成兩路進入ISERDESE2,實現4X采樣。ISERDESE2/OSERDESE2負責完成輸入數據的串并/并串轉換。
MMCME2負責將外部輸入的125MHz時鐘倍頻產生各種不同的時鐘,提供給ISERDESE2/OSERDESE2、DRU、時鐘對狀態機等邏輯使用。其中,CLK和CLK90頻率為625MHz,通過BUFIO提供給ISERDESE2/OSERDESE2使用,IntClk和IntClkDiv分別為625MHz和312.5MHz,通過BUFG提供給DRU、ISERDESE2/OSERDESE2并行端、內部FPGA控制等邏輯使用。ClkRef為310MHz,提供給IDELAYCTRL使用。
DRU負責完成ISERDESE2串行端數據和并行端數據之間的跨時鐘域設計。時鐘對齊狀態機負責實現BUFG和BUFIO不同時鐘域之間的相位對齊。
2 關鍵設計
2.1 ISERDESE2
相對于Virtex-5系列FPGA中的ISERDES和Virtex-6系列FPGA中的ISERDESE1相比,7系列FPGA中的ISERDESE2實現下述的不同功能:
(1)提供IDDR觸發器功能;
(2)提供一種專用的串并轉換器,該轉換器有特殊的時鐘和邏輯特征,用于高速源同步應用;
(3)支持存儲器模式,可支持QDR、DDR3等不同的存儲器接口;
(4)支持過采樣模式。
在以前的設計中,過采樣是通過FPGA內部的SLICE觸發器實現的,而在7系列FPGA中,過采樣是通過配置ISERDESE2實現的,如圖2所示。
2.2 時鐘采樣
MMCME2產生兩個時鐘CLK和CLK90用于ISERDESE2,兩個時鐘的正沿和負沿均被使用,相當于四個時鐘。對于輸入數據流,通過IBUFDS DIFFOUT復制成兩路,一路的相位沒有變化,另外一路通過IDELAYE2相位偏移45°。相位偏移過的數據送入從ISERDESE2,實現了雙倍的數據采樣率。
通過組合四個時鐘相位和兩路數據,實現了八個時鐘采樣相位,如圖3所示。
如圖3所示,通過IDELAYE2實現輸入數據的相位變化,而IDELAYE2的變化是通過IDELAYCTRL控制的。CLK和CLK90工作頻率為625MHz,0°、90°、180°和270°的時鐘沿位置分別在0、400、800和1200ps。輸入數據流頻率為1.25Gbps,相位偏移45°時,數據必須延遲
200ps。IDELAYCTRL設計頻率為310MHz,單拍延遲為52ps,為了實現200ps的延遲,需延遲4拍。因此,對于主ISERDESE2,IDELAY VALUE值設為0,對于從ISERDESE2,IDELAY VALUE值設為4。
2.3 DRU
用于ISERDESE2的CLK和CLK90均為局部時鐘,只能工作在固定的I/O區域。ISERDESE2輸出數據必須從局部時鐘域(BUFIO)搬到全局時鐘域(BUFG)中進行,需要進行跨時鐘域(CDC)操作。
CDC操作在FPGA邏輯中以寄存器組形式實現。DRU中實現了CDC寄存器組和一些比較邏輯。
2.3.1 邊沿檢測
輸入FPGA的數據流的采樣和比較點見圖4。
數據流通過CLK0、CLK90、CLK180和CLK270四個時鐘進行采樣,采樣點發生在時鐘和數據流向交叉時,這些采樣點依據格式Qx[M or S]x進行命名。其中,Qx表示ISERDESE2的輸出Q1、Q2、Q3或Q4,Mx或Sx表示數據輸出來源于主ISERDESE2或從ISERDESE2。
連接采樣點的E4[0]到E4[3]表示DRU比較數據和尋找數據邊沿的位置。四個位置點的公式為:
DRU邊沿檢測電路如圖5所示。檢測電路展示了數據從ISERDESE2到DRU邏輯的流程,為了優化時序,在ISERDESE2和邏輯之間增減了一級寄存器。同時也展示了從ISERDESE2的Q4輸出端時如何存儲上一次的采樣點并和新一次采樣進行比較。
2.3.2 數據選擇
當完成數據比較和邊沿檢測后,DRU需要對比較的數據進行處理。在設計中,采用一個簡單的狀態機,依據數據邊沿的位置和它遷移的位置,選擇遠離數據邊沿的位置作為采樣點。
由于電壓和溫度的變化,源時鐘和接收時鐘之間抖動、相位的不同,理想的采樣點應該是左右移動的。也就是說E4[0]到E4[3]的等式值總是變化的,依據這些變化值,狀態機狀態發生遷移,如圖6所示。
表1給出了數據選擇的對應關系,其中,EQ表示當前狀態機的位置,DQ表示互連邏輯中使用的采樣值。在過采樣模式下的每個ISERDESE2是通過兩組IDDR觸發器實現的,因此DO表示應該使用哪一組觸發器作為最理想的采樣點。
2.4 時鐘對齊狀態機
在設計中,BUFIO和BUFG兩個時鐘域之間的相位關系不確定。為了在不同的時鐘域之間傳輸數據,需要實現CDC邏輯,兩個時鐘之間相位必須對齊。時鐘對齊電路采用了一個FPGA I/O區域內所有的I/O管腳具有相同時序特性的原理。
一個OSERDESE2被BUFG時鐘域的時鐘(IntClk、IntClkDiv)驅動,并且裝載一個固定的數據模板。OSERDESE2在IntClk頻率下輸出一個時鐘模板。通過反饋路徑,時鐘模板被相鄰的ISERDESE2捕獲,ISERDESE2工作在BUFIO時鐘域。通過這種技術,可以測量不同的兩個時鐘之間的相位關系。使用MMCM中有一個小的狀態機,可以實現獨立的相位改變的能力,BUFG時鐘發生相位改變,以適應BUFIO時鐘域的相位。
3 仿真與驗證
本論文采用XC7K325T芯片異步LVDS過采樣進行設計和實現,并采用ISIM13.3進行仿真驗證,采用ISE13.3進行綜合、布局布線、生成bit文件。
將生成的bit文件下載到Xilinx評估版KC705中,并進行測試、驗證。實際測試結果表明:基于FPGA的異步LVDS過采樣系統功能正確,傳輸速率達到了1.25Gbps。
4 結束語
本文針對LVDS接口,研究并實現了一種基于FPGA的LVDS過采樣技術,重點對LVDS過采樣中系統組成、ISERDESE2、時鐘采樣、數據恢復單元、時鐘同步狀態機等關鍵技術進行了描述,并基于Xilinx評估板進行了驗證。經嚴格測試驗證表明:基于FPGA實現的異步LVDS過采樣技術功能正確,傳輸速率達到1.25Gbps。
評論