張 峰
(中國(guó)西南電子技術(shù)研究所,成都 610036)
串行器/解串器(SERDES)傳輸技術(shù)廣泛應(yīng)用于機(jī)載通信終端高速數(shù)傳系統(tǒng)中。傳統(tǒng)設(shè)計(jì)方法為采用外置DS92LV16芯片[1],實(shí)現(xiàn)并/串轉(zhuǎn)換后進(jìn)行板間數(shù)據(jù)傳輸,這種方法需占用寶貴的嵌入式管腳資源,1片DS92LV16至少需要24根信號(hào)線來(lái)傳輸16 b位寬信號(hào),即采用DS92LV16芯片無(wú)法實(shí)現(xiàn)多路間數(shù)傳,故基于FPGA片內(nèi)的SERDES傳輸技術(shù)成為研究的熱點(diǎn)。SERDES作為FPGA中嵌入的一種原語(yǔ)(Primitive)結(jié)構(gòu),可代替?zhèn)鹘y(tǒng)的外置并/串轉(zhuǎn)換芯片,但受其固有的傳輸相位漂移影響,通常不能多路并行使用,限制了SERDES技術(shù)在寬帶鏈中的應(yīng)用。筆者通過(guò)對(duì)SERDES及Idelay的工作原理進(jìn)行研究,提出了一種能夠進(jìn)行自適應(yīng)動(dòng)態(tài)延時(shí)調(diào)整的方法,克服了SERDES傳輸中的相位漂移問(wèn)題,成功實(shí)現(xiàn)了60個(gè)SERDES通路、每路850Mb/s的多路SERDES并行傳輸,且經(jīng)過(guò)項(xiàng)目驗(yàn)證。
文中第2節(jié)簡(jiǎn)單介紹SERDES原語(yǔ)(Primitive)結(jié)構(gòu);第3節(jié)針對(duì)項(xiàng)目需求,提出基于SERDES傳輸?shù)木唧w實(shí)現(xiàn)方案及自適應(yīng)動(dòng)態(tài)延時(shí)調(diào)整方法;第4節(jié)為實(shí)驗(yàn)結(jié)果,最后是結(jié)束語(yǔ),給出結(jié)論及應(yīng)用展望。
SERDES原語(yǔ)為FPGA內(nèi)的一種新型并/串轉(zhuǎn)換技術(shù),基于LVDS電平,利用FPGA的普通用戶IO即可實(shí)現(xiàn)約1 Gb/s的高速傳輸,以代替?zhèn)鹘y(tǒng)的外置并/串轉(zhuǎn)換芯片。K7(Kintex-7)系列FPGA中SERDES的發(fā)、收端分別稱為OSERDESE2、ISERDESE2,其原語(yǔ)結(jié)構(gòu)分別如圖1和圖2所示。
圖1 OSERDESE2原語(yǔ)結(jié)構(gòu)Fig.1 The structure of OSERDESE2 primitives
圖2 ISERDESE2原語(yǔ)結(jié)構(gòu)Fig.2 The structure of ISERDESE2 primitives
SERDES傳輸參數(shù)屬性如表1表示。
表1 OSERDESE2/ISERDESE2傳輸屬性Table 1 The transmission attribute of OSERDESE2/ISERDESE
寬帶鏈某機(jī)載通信終端中,AD采樣子卡需要將DDC下變頻后數(shù)據(jù)送給信號(hào)處理板,提出以下要求:一是傳輸通路分為I/Q二路,共60路;二是每路速率為384 Mb/s(12 b×32 MHz);
若采用傳統(tǒng)的 DS92LV16芯片實(shí)現(xiàn),1片DS92LV16至少需要24根信號(hào)線來(lái)傳輸16 b位寬信號(hào),即I路或Q路,則60路數(shù)據(jù)共需要信號(hào)線數(shù)量為60×24=1440。鑒于目前FPGA最大管腳數(shù)目為1736,無(wú)法提供1440個(gè)用戶 IO,故采用DS92LV16芯片的方式行不通。
與DS92LV16芯片方式占用1440個(gè)管腳不同,若采用SERDES原語(yǔ)傳輸下變頻后60路I/Q基帶數(shù)據(jù),只需要60對(duì)普通用戶IO即可,降低了FPGA的管腳壓力,減少了PCB板面積需求(至少減少了60片DS92LV16芯片的面積),有利于在空間受限的機(jī)載環(huán)境中應(yīng)用。
基于SERDES傳輸技術(shù)的系統(tǒng)架構(gòu)如圖3所示,其中發(fā)射端OSERDESE2位于AD子卡,而接收端ISERDESE2位于信號(hào)處理板內(nèi)。
圖3 基于SERDES技術(shù)傳輸?shù)南到y(tǒng)框圖Fig.3 The structure of SERDES transmission system
3.3.1 時(shí)鐘速率分析
DDC下變頻后數(shù)據(jù)速率為32 MHz,即OSER-DESE2的并行時(shí)鐘為32 MHz,數(shù)據(jù)位寬為12 b。根據(jù)表1可知,必須將12 b數(shù)據(jù)低2位補(bǔ)0后,拼成14 b進(jìn)行數(shù)據(jù)傳輸,采用 DDR(Double Data Rate)雙沿方式進(jìn)行傳輸,則OSERDESE2的數(shù)據(jù)率為448 Mb/s(14 b×32 MHz),相應(yīng)的 ISERDESE2的串行時(shí)鐘、并行時(shí)鐘分別為224 MHz和32MHz。
3.3.2 數(shù)據(jù)同步實(shí)現(xiàn)
假設(shè)發(fā)送端OSERDESE2連續(xù)發(fā)出4 b數(shù)據(jù)(ABCDABCD……),接收端如何進(jìn)行邊界定位,確定4 b數(shù)據(jù)是ABCD,而不是BCDA、CDAB、DABC?
引入同步判決機(jī)制。在進(jìn)行SERDES數(shù)據(jù)傳輸時(shí),必須先建立鏈路同步,確定數(shù)據(jù)邊界后,再發(fā)送正常數(shù)據(jù)。
假設(shè)接收端ISERDESE2接收到的數(shù)據(jù)為BCDA,在FPGA中通過(guò)邏輯實(shí)現(xiàn)移位bitslip功能,其時(shí)序要求如圖4所示。使ISERDESE2的并行數(shù)據(jù)輸出端產(chǎn)生循環(huán)移位,則通過(guò)3次移位后,可正確接收數(shù)據(jù)ABCD,移位過(guò)程如表2所示。
圖4 bitslip時(shí)序要求Fig.4 The timing requirement of bitslip
表2 Bitslip與數(shù)據(jù)移位關(guān)系Table 2 The relationship between bitslip and data-shifting
待60路的I/Q數(shù)據(jù)都完成邊界定位后,接收端發(fā)送同步完成信號(hào)給發(fā)送端后,發(fā)送端可正常發(fā)送DDC數(shù)據(jù)。
3.3.3 基于Idelay的自適應(yīng)動(dòng)態(tài)延時(shí)調(diào)整技術(shù)
由于I路及Q路基帶數(shù)據(jù)傳輸所用的60個(gè)SERDES通路,分布在FPGA內(nèi)不同的Bank,其傳輸必然存在時(shí)序差異(time skew),接收端恢復(fù)出原始數(shù)據(jù)時(shí),會(huì)出現(xiàn)毛刺,如圖5所示(正確數(shù)據(jù)為光滑的鋸齒波)。
在經(jīng)過(guò)多種時(shí)序約束及優(yōu)化后,仍有少數(shù)SERDES不能正確接收數(shù)據(jù),必須采用基于Idelay的延時(shí)調(diào)整,以消除時(shí)序差異。
Idelay是FPGA中一種原語(yǔ)結(jié)構(gòu),用于調(diào)整接收數(shù)據(jù)的時(shí)延。K7系列FPGA中每個(gè)Idelay分為32個(gè)時(shí)鐘間隔(tap),如圖6所示,每個(gè)間隔的周期長(zhǎng)度為78 ps,故其能調(diào)整的接收時(shí)延為2.496 ns。
圖6 Idelay時(shí)隙間隔結(jié)構(gòu)Fig.6 Idelay tap structure
采用Idelay調(diào)整時(shí)延,傳統(tǒng)方式為通過(guò)實(shí)驗(yàn)手動(dòng)調(diào)整Tap的數(shù)值,重新編譯后下載,通過(guò)Chipscope觀測(cè)數(shù)據(jù)與時(shí)鐘的相位關(guān)系后,再進(jìn)行反復(fù)修正,直至數(shù)據(jù)采樣點(diǎn)剛好位于數(shù)據(jù)的中間,費(fèi)時(shí)費(fèi)力。為此,筆者提出了一種能夠進(jìn)行自適應(yīng)的動(dòng)態(tài)延時(shí)調(diào)整技術(shù),它可以自動(dòng)根據(jù)時(shí)鐘和數(shù)據(jù)的相位關(guān)系,調(diào)整Tap的數(shù)值,最終將數(shù)據(jù)采樣點(diǎn)放到數(shù)據(jù)的中間,避免了繁瑣的手動(dòng)調(diào)整Tap值,其原理如圖7所示。
圖7 自適應(yīng)動(dòng)態(tài)延時(shí)調(diào)整原理Fig.7 The adaptive dynamic delay adjustment
基本原理步驟如下:
(1)設(shè)Idelay中的Tap的初始值為0;
(2)通過(guò)步進(jìn)為1,增加Tap的值,增加 ISERDESE2接收的時(shí)延,當(dāng)檢測(cè)到數(shù)據(jù)變化時(shí)(從data0變?yōu)閐ata1),記錄此時(shí)Tap的數(shù)值為A;
(3)繼續(xù)增加tap的值,再次檢測(cè)到數(shù)據(jù)變化時(shí)(從data1變?yōu)閐ata2),記錄此時(shí)Tap的數(shù)值為B;
(4)設(shè)定Tap的數(shù)值為(A+B)/2,此時(shí)在采樣點(diǎn)X時(shí),對(duì)應(yīng)數(shù)據(jù)即為Data1,且在data1的中間。
這是軟件實(shí)現(xiàn)的難點(diǎn)。
在采用了基于Idelay的自適應(yīng)動(dòng)態(tài)延時(shí)調(diào)整技術(shù)后,ISERDESE2能夠正確接收下變頻后的60路的I路及Q路數(shù)據(jù)。
實(shí)驗(yàn)條件:PC機(jī)配置為Windows SP3,i5-2400CPU@3.10GHz,3.2 GB 內(nèi)存;ISE 版本為 14.5。
利用FPGA調(diào)試工具chipsope,觀測(cè)60路數(shù)據(jù),接收端ISERDESE2可以448 Mb/s速度正確接收自O(shè)SERDESE2發(fā)出的數(shù)據(jù),完全消除了圖5中的毛刺現(xiàn)象,如圖8所示。
圖8 SERDES正確數(shù)據(jù)接收Fig.8 The correct data received by SERDES
實(shí)驗(yàn)中,采用基于Idelay的自適應(yīng)動(dòng)態(tài)延時(shí)調(diào)整技術(shù)后,實(shí)測(cè)SERDES的傳輸速度進(jìn)一步提高到了850Mb/s,工程中所用K7系列FPGA,其速度均為-1等級(jí),基本達(dá)到Xilinx公司標(biāo)稱的900Mb/s,若采用-3速度等級(jí)的FPGA,則SERDES的傳輸速度將達(dá)到1.2 Gb/s,可滿足絕大部分?jǐn)?shù)據(jù)傳輸要求,驗(yàn)證了筆者提出的自適應(yīng)動(dòng)態(tài)延時(shí)調(diào)整的SERDES傳輸技術(shù)的可行性及優(yōu)越性。
SERDES傳輸技術(shù)因其用FPGA普通的用戶IO管腳實(shí)現(xiàn)了高速串行數(shù)據(jù)傳輸(速度可達(dá)1 Gb/s),非常適用于數(shù)據(jù)位寬14位以下的并/串轉(zhuǎn)換、串/并轉(zhuǎn)換,避免了對(duì)傳統(tǒng)并/串轉(zhuǎn)換芯片如DS92LV16芯片的依賴。筆者提出的基于Idelay的自適應(yīng)動(dòng)態(tài)延時(shí)調(diào)整技術(shù)能動(dòng)態(tài)調(diào)整ISERDESE2接收的時(shí)延,使數(shù)據(jù)采樣點(diǎn)恰好在數(shù)據(jù)中間,解決了多路SERDES傳輸時(shí)固有的相位漂移問(wèn)題,增強(qiáng)了SERDES傳輸?shù)姆€(wěn)定性。由于目前尚未發(fā)現(xiàn)運(yùn)用基于Idelay的自適應(yīng)動(dòng)態(tài)延時(shí)調(diào)整技術(shù)實(shí)現(xiàn)多路SERDES傳輸?shù)陌咐蔬M(jìn)一步驗(yàn)證筆者提出的這種傳輸方案在苛刻環(huán)境的可靠性是下一步的研究工作。
[1]馬紅艷,張福欣,尹哲春,等.LVDS技術(shù)在數(shù)字視頻傳輸系統(tǒng)中的應(yīng)用[J].電子設(shè)計(jì)工程,2010,18(7):24-26.MA Hong-yan,ZHANG Fu-xin,YIN Zhe-chun,et al.Application of LVDS in digital video transmission system[J].Electronic Design Engineering,2010,18(7):24-26.(in Chinese)