基于FPGA的LVDS高速差分板間接口應(yīng)用
隨著ADC器件性能和DSP處理能力的提高,板間數(shù)據(jù)傳輸需要更高的帶寬才能滿足應(yīng)用要求。以現(xiàn)在主流的工業(yè)CPCI總線為例,其傳輸帶寬最高為4 Gbit/s,而采用FDPD以及最新FDPDII標準的工業(yè)總線,最大傳輸帶寬也僅僅達到1.2 Gbit/s和3.2 Gbit/s,遠遠無法滿足寬帶接收機的傳輸接口帶寬要求。因此,數(shù)字接收機內(nèi)部的傳輸接口速率成為了有一個影響寬帶數(shù)字接收機性能的瓶頸。
近年來出現(xiàn)的LVDS具有高速、低功率、抗干擾性能好的特點,非常適合于作為板間數(shù)據(jù)傳輸接口的標準。
本文基于圖1實現(xiàn)了一種基于LVDS差分傳輸技術(shù),采用DDR雙倍數(shù)據(jù)率技術(shù)進一步提高了數(shù)據(jù)傳輸速率,使接口數(shù)據(jù)速率最高可達到18.4Gbit/s的板間傳輸接口,而總線寬度僅僅為23位。并且采用了速率可靈活調(diào)整的時鐘產(chǎn)生電路,可實現(xiàn)200、400和800 MHz的DDR速率,完成了PCB布線及基于Xilinx Vertex2和Vertex4 FPGA的DDR收、發(fā)器綜合設(shè)計。并成功應(yīng)用在采用了55351—1259和54457-1258通用接插件的AD9218 ADC采集板與4處理器ADSP TS201數(shù)字信號處理板構(gòu)成的通用信號處理系統(tǒng)上。
1 發(fā)送端與接收端系統(tǒng)設(shè)計
1.1 發(fā)送與接收系統(tǒng)框圖
傳輸接口原理圖如圖2。
其中clkO和clkl80兩路反相時鐘由FPGA內(nèi)部的DCM模塊將板載時鐘芯片產(chǎn)生的100 MHz時鐘倍頻產(chǎn)生,時鐘可靈活配置為100、200和400 MHz從而滿足不同速率ADC數(shù)據(jù)流量傳輸,關(guān)于DCM的配置方法下文有詳細描述。
兩個FIFO為FPGA內(nèi)部的blockRAM軟FIFO,是為了緩存來自ADC采集的數(shù)據(jù)。
傳輸控制邏輯是為了產(chǎn)生對FIFO、ODDR以及各個傳輸控制信號,其內(nèi)部狀態(tài)機狀態(tài)轉(zhuǎn)換圖如圖3。
data-tx為INCMOS2.5標準的單端控制信號,由該信號控制數(shù)據(jù)的傳輸與中止;ODDR模塊的作用是將來自于兩個FIFO的兩路SDR單速率信號,轉(zhuǎn)換為一路DDR信號。其內(nèi)部原理下文有專門介紹。
DDR同步時鐘clktx最高可由兩級DCM倍頻產(chǎn)生400MHz的數(shù)據(jù)傳輸始終,從而達到單路800 MHz的DDR數(shù)據(jù)速率。該時鐘信號通過LVDS驅(qū)動器差分傳輸給接收端,作為接收同步時鐘。
板間接插器一共分配了24路LVDS差分傳輸通道,其中一路分配給同步時鐘clktx,剩下的23對均可作為數(shù)據(jù)傳輸用,因此可以達到800 MHz×23×1 bit=18.4 Gbit/s的接口速率。接收端原理圖如圖4。
接收端接收到由發(fā)送端傳輸來的DDR數(shù)據(jù)信號、DDR同步時鐘clktx以及數(shù)據(jù)同步信號dma一tx。
傳輸端控制邏輯根據(jù)dma tx信號使能DDR接收器IDDR以及后端的FIFO。
DDR信號經(jīng)過IDDR模塊后生成兩路普通數(shù)據(jù)信號D1out(9:0)和D2out(9:0),經(jīng)過數(shù)據(jù)轉(zhuǎn)換模塊轉(zhuǎn)換為32位浮點數(shù),供給接收FIFO。
后端的四片ADSP TS201 DSP芯片通過SDRAM接口或者64位通用總線訪問接收FIFO,提取AD采集的浮點數(shù)據(jù),完成快速測頻或者快速傅立葉變換等各種通用算法。
1.2 DDR信號產(chǎn)生電路:ODDR邏輯
DDR雙倍數(shù)據(jù)傳輸模式相較于SDR(singledma rate)在不改變時鐘信號前提下,可利用時鐘的雙沿(上升/下降沿)進行數(shù)據(jù)采集傳輸,從而獲得接近于SDR兩倍的數(shù)據(jù)傳輸率,所以DDR技術(shù)優(yōu)勢顯而易見,既可以保持時鐘信號不變及電路穩(wěn)定性,又可較大幅度提高數(shù)據(jù)傳輸速率。
在發(fā)送端模塊中,核心部分為ODDR模塊,該模塊的作用在于將兩路SDR的數(shù)據(jù)率信號轉(zhuǎn)換為DDR信號,分別在上升沿和下降沿進行傳輸。
ODDR模塊由兩個專用DDR寄存器和一個復用器組成,兩個寄存器采用反相時鐘輸入,且復用器模塊也由時鐘驅(qū)動如圖5(a)。
系統(tǒng)接收端通過IDDR模塊將DDR信號分解為兩路普通速率信號輸出,由于在本應(yīng)用中傳輸?shù)腄DR信號,上升沿為一路AD采集的信號,下降沿為另外一路AD采集的信號,把數(shù)據(jù)分為虛實兩部,并且在后端DSP進行并行處理,需要兩路SDR數(shù)據(jù)輸出具有相同的相位,采取如圖5(b)所示結(jié)構(gòu)。
1.3 LVDS輸出端口配置
Xilinx的Vertex系列FPGA均在IO端口集成了LVDS收發(fā)器。要采用LVDS差分標準傳輸信號,需要對FPGA的IO端口進行配置,從而使綜合工具在FPGA布局布線流程中,將INDS驅(qū)動器結(jié)合到IO端口上。
在發(fā)送端,應(yīng)在IO端口配置OBUFDS模塊(圖6)。
[!--empirenews.page--]1.4 DCM時鐘模塊配置
本設(shè)計當中,傳輸端AD板與接收端DSP板上的FPGA外部時鐘均為100 MHz,為了使用靈活可配置的接口工作速率,均采用DCM模塊對時鐘進行分頻/倍頻操作,可以將模塊工作時鐘在50~400 MHz進行靈活配置。
發(fā)送端采用Xilinx VertexlI XCl500 FPGA,速度等級為一5,DCM最高工作時鐘為420 MHz,接收端采用Xinlin Vertex4 SX55 FPGA,速度等級為一11,DCM最高工作頻率為450 MHz,經(jīng)過驗證,在400MHz下工作良好。
為了得到最高400 MHz的時鐘頻率,須采取級聯(lián)DCM的方法,由第一級DCM產(chǎn)生50~200 MHz時鐘信號,第二級DCM產(chǎn)生200~400 MHz時鐘信號,BUFGCE為帶使能端的全局時鐘buffer,通過它選通200 MHz時鐘才能使第二級DCM中的DLL成功鎖定。
級聯(lián)及反饋方式原理圖如圖8,均采用DCM-ADV實例。
第一級DCM例化參數(shù)如下,輸入100 MHz,輸出200 MH2,低速率模式:
值得注意的是,當傳輸模塊配置在最高時鐘頻率下工作時,需要對整個模塊進行比較細致的約束,才能使各模塊之間的延遲不至于引起傳輸數(shù)據(jù)錯誤。其中最關(guān)鍵的約束在于時鐘周期的全局約束以及對各個輸入輸出引腳的延時進行約束。限于篇幅,具體的約束方法不予贅述。
2 實現(xiàn)結(jié)果
以下為ChipScope 9在線邏輯分析儀軟件捕捉的接收端波形。
Data為DDR輸入信號;D1in、D2in為經(jīng)過IDDR模塊后從DDR信號中分離的兩路SDR普通信號;Data tx為傳輸控制同步信號,該信號有效時,傳輸開始;Wr en為傳輸控制邏輯生成的FIFO寫使能信號,因為Dlin、D2in信號須經(jīng)過定點轉(zhuǎn)浮點模塊后再送到FIFO,所以FIFO寫使能需要比D1in D2in延后一個周期圖9用chipscope軟件在400 MHz采樣頻率下截取,此時傳輸接口工作在200 MHz時鐘頻率下,單線傳輸速率400MBit/s,接口工作速率為9.2 Gbit/s。
系統(tǒng)硬件平臺由AD采樣板和DSP板組成,通過高速接口互聯(lián)的平臺如圖10。
3 結(jié)語
本文在實現(xiàn)了一種高速的LVDS差分標準的板間數(shù)據(jù)接口,提出了具體的發(fā)送端與接收端系統(tǒng)框圖并最終在Xilinx FPGA器件上進行了實現(xiàn),在圖10所示硬件平臺上工作情況良好,該硬件平臺的AD板為AD9218 105MSPS 10 bit采樣芯片和XilinxVertexII FPGA構(gòu)成,信號處理板為Xilinx Vertex4FPGA和4片ADSP TS201 DSP芯片構(gòu)成。
當采用最高系統(tǒng)時鐘400 MHz時,由于傳輸接口帶寬高達18.4 Gbit/s,使得高速AD和信號處理機之間不再有數(shù)據(jù)傳輸瓶頸,因此對于數(shù)字接收機性能,如瞬時覆蓋帶寬、實時性的影響全部來自于AD轉(zhuǎn)換器件性能和信號處理機的計算速度,從而解決了寬帶數(shù)字接收機內(nèi)部的數(shù)據(jù)傳輸問題。