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