<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于Virtex-5 FPGA的高速串行傳輸系統的設計與實(shí)現

基于Virtex-5 FPGA的高速串行傳輸系統的設計與實(shí)現

作者: 時(shí)間:2011-08-27 來(lái)源:網(wǎng)絡(luò ) 收藏
摘要:作為高傳輸速率和低設計成本的傳輸技術(shù),串行傳輸技術(shù)被廣泛應用于高速通信領(lǐng)域,并已成為業(yè)界首選。在此基于對系統的分析,對實(shí)例進(jìn)行了總體設計驗證,最終達到高速傳輸的目的。

隨著(zhù)網(wǎng)絡(luò )技術(shù)的不斷發(fā)展,數據交換、數據傳輸流量越來(lái)越大。尤其像雷達,氣象、航天等領(lǐng)域,不僅數據運算率巨大,計算處理復雜,而且需要實(shí)時(shí)高速遠程傳輸,需要長(cháng)期穩定有效的信號加以支持,以便能夠獲得更加精準的數據收發(fā)信息,更好的為工程項目服務(wù)。傳統的并行傳輸方式由于走線(xiàn)多、信號間串擾大等缺陷,無(wú)法突破自身的速度瓶頸。而串行傳輸擁有更高的傳輸速率但只需要少量的信號線(xiàn),降低了背板開(kāi)發(fā)成本和復雜度,滿(mǎn)足高頻率遠距離的數據通信需求,被廣泛應用到各種高速數據通信系統設計中。

目前,高速串行接口取代并行拓撲結構已經(jīng)是大勢所趨。當今很多公用互連標準(如USB,PCI-Express)都是基于串行連接來(lái)實(shí)現高速傳輸的。相比于并行總線(xiàn),串行連接的物理緊密度和鏈路韌性具有很多優(yōu)勢。因此,很多傳輸領(lǐng)域都轉向了串行傳輸,如筆記本電腦顯示互連、高速背板互連和存儲器內部互連。該系統涉及到的技術(shù)主要包括:光纖傳輸、PCIE(PCI-Express)傳輸和DDR緩存技術(shù),以及這幾種技術(shù)在中融合為一個(gè)完整的串行傳輸鏈路,并實(shí)現了在兩臺服務(wù)器之間的高速數據傳輸測試,這對于實(shí)際工程應用具有重要的現實(shí)意義。

1 系統結構
  

系統作為數據采集、傳輸、存儲中的一部分,對傳輸性能指標有著(zhù)嚴格的要求。該系統要完成光信號到PCI-Express接口信號的相互轉換,并在轉換過(guò)程中完成數據的高速傳輸。信號一般可達4.25Gb/s,處理如此高的數據對硬件設計提出了很大的挑戰。其中所包含的硬件有:高速光電轉換電路,數據處理電路、DDRⅡ數據緩存電路、時(shí)鐘管理電路、PCIE傳輸模塊電路、電源模塊電路、自定義擴展接口電路。系統框圖如圖1所示。

基于FPGA的高速串行傳輸系統的設計與實(shí)現

技術(shù)要求主要有以下幾點(diǎn):首先,傳輸卡中的4個(gè)光纖通道,每通道要達到2Gb/s以上。其次,PCIE傳輸速率不小于6Gb/s,支持DMA傳輸。再有,光纖和PCI-E傳輸誤碼率要小于1×10-10,連續傳輸相對穩定。

圖1中各個(gè)模塊的功能如下:Virtex5作為傳輸卡的核心,用來(lái)實(shí)現數據從光纖接口到PCIE接口的高速轉換。光纖傳輸模塊的作用是將內部數據經(jīng)過(guò)編碼后,通過(guò)光纜傳輸給接收系統,以及接收外來(lái)光數據,并將光數據傳送給處理電路DDR緩存模塊的作用,就是將傳輸過(guò)程中的高速數據,進(jìn)行緩存,以保持數據的完整性。PCI-Express傳輸模塊的作用,就是與PC之間實(shí)現PCI-Express傳輸協(xié)議,與PC實(shí)現串行數據傳輸,同時(shí)與外部擴展接口,DDR緩存,光纖傳輸模塊實(shí)現內部并行數據的交換。QTE自定義接口模塊的作用,就是進(jìn)行外部功能擴展。比如,可以擴展高速數據采集板卡、存儲硬盤(pán)卡、圖像采集卡等。時(shí)鐘管理模塊的作用,是給光纖傳輸模塊提供參考時(shí)鐘。時(shí)鐘頻率由FPGA的時(shí)鐘控制模塊控制。根據光模塊的性能,給出指定的時(shí)鐘。PCI-Express的參考時(shí)鐘,是通過(guò)芯片從PC主板上提取的。電源管理模塊的作用,是給整個(gè)系統提供各種不同的電壓。

2 系統模塊設計與實(shí)現

為了實(shí)現所要求的系統配置,更好地發(fā)揮各模塊自身及相互之間的作用,必須對模塊間進(jìn)行系統的協(xié)議分析。該系統的數據傳輸是雙向的,既可以傳輸數據,也可以接收數據。它主要由電源管理模塊,時(shí)鐘管理模塊,PCI-Express傳輸模塊,DDR緩存模塊,光纖傳輸模塊和外部擴展接口組成。其中,時(shí)鐘控制模塊和Aurora發(fā)送模塊、Aurora接收模塊是整個(gè)設計的重點(diǎn)。

2.1 時(shí)鐘控制模塊

時(shí)鐘控制模塊主要用來(lái)控制FPGA外圍的時(shí)鐘芯片ICS8442來(lái)產(chǎn)生所需要的高信噪比、低抖動(dòng)的差分時(shí)鐘。

其模塊電路如圖2所示:輸出其中的信號用來(lái)完成對ICS8442的編程,使其能夠產(chǎn)生所需要的時(shí)鐘信號。

基于FPGA的高速串行傳輸系統的設計與實(shí)現

ICS8442的性能參數如下:

輸出信號頻率范圍為31.25~700MHz;晶振頻率范圍為10~25MHz;VCO頻率范圍為250~700MHz;ICS8442是LVDS邏輯電平,具有極低的相位噪聲,這種特性使它非常適合用來(lái)為吉比特以太網(wǎng)或同步光纖網(wǎng)提供時(shí)鐘信號。

ICS8442的內部結構圖3所示。ICS8442內部有一個(gè)完整的PLL鎖相環(huán),其VCO的輸出頻率范圍在250~700MHz之間,倍頻系數是由M決定的,M的取值范圍在10~28之間。VCO的輸出頻率為:

基于FPGA的高速串行傳輸系統的設計與實(shí)現

ICS8442最終的輸出結果還要經(jīng)過(guò)一個(gè)分頻器N,最終輸出結果的頻率和晶振輸入頻率的關(guān)系式為:

基于FPGA的高速串行傳輸系統的設計與實(shí)現

中:N是一個(gè)2位的寄存器,其對應的取值如表1所示。

基于FPGA的高速串行傳輸系統的設計與實(shí)現

對ICS8442時(shí)鐘芯片的操作主要是對寄存器M,N的寫(xiě)操作。ICS8442支持并行寫(xiě)操作和串行寫(xiě)操作,根據硬件電路的設計,程序采用串行的寫(xiě)操作時(shí)序。當ICS8442的nP_LOAD置為高電平和S_LOAD置為低電平時(shí),芯片實(shí)現串行操作。操作時(shí)序如圖4所示。

基于FPGA的高速串行傳輸系統的設計與實(shí)現

當S_LOAD置為低且nP_LOAD置為高之后,數據在S_CLOCK的上升沿處寄存在緩沖器中,在S_LOAD的下降沿處將數據鎖存到寄存器M,N中。

由于A(yíng)URORA光纖通信的輸出時(shí)鐘頻率設定的是125MHz,結合硬件電路的設計,硬件晶振的頻率為20MHz,因此選擇M值為000011001(25),N的值為10(4),故時(shí)鐘芯片的時(shí)鐘輸出頻率為:

基于FPGA的高速串行傳輸系統的設計與實(shí)現

時(shí)鐘控制模塊的實(shí)測時(shí)鐘信號如圖5所示。

基于FPGA的高速串行傳輸系統的設計與實(shí)現

圖5是用Chipscope在線(xiàn)邏輯分析儀得到的波形,由于Chipscope在線(xiàn)邏輯分析儀的觸發(fā)時(shí)鐘是100MHz,因此在抓取125MHz的時(shí)鐘信號時(shí),在圖上顯示的時(shí)鐘信號占空比不定,若將時(shí)鐘芯片產(chǎn)生的時(shí)鐘頻率降低,則此現象消失。

2.2 AURORA發(fā)送模塊

在生成AURORA IP CORE時(shí),同時(shí)生成了一個(gè)基于A(yíng)URORA協(xié)議的例示程序。因此,要實(shí)現基于A(yíng)URORA協(xié)議的光纖通信,在發(fā)送端只需要在frame_gen_i模塊將要發(fā)送的數據打包,然后通過(guò)AURORA模塊發(fā)送出去。因此該模塊著(zhù)重介紹如何將上一級傳送過(guò)來(lái)的數據進(jìn)行打包壓縮,形成適合AURORA協(xié)議的數據幀,通過(guò)AURORA協(xié)議發(fā)送到接收端。圖6為frame_gen_i模塊的RTL級模型圖。

基于FPGA的高速串行傳輸系統的設計與實(shí)現

考慮到上一級傳輸數據速率可能會(huì )與AURORA傳輸的時(shí)鐘頻率不同,因此在發(fā)送端建立一個(gè)FIFO來(lái)做緩沖器。并且AURORA協(xié)議的發(fā)送時(shí)序圖如圖7所示??梢钥闯?,TX_SOF_N為數據包幀的開(kāi)始標志,TX_EOF_N為數據包幀的結束.標志,TX_REM[0:r(n)]記錄最后的傳輸數據的線(xiàn)程,TX_SRC_RDY_N為低代表數據有效,TX_DST_RDY_N為低代表準備好接受數據,TX_D[0:(8n-1)]是此模塊的輸出數據。以上信息是AURORA協(xié)議的發(fā)送時(shí)序,在使用FIFO做緩沖時(shí)也應該遵循這樣的協(xié)議。

基于FPGA的高速串行傳輸系統的設計與實(shí)現

發(fā)送端的FIFO模塊分別包括FIFO的復位信號、FIFO空、FIFO滿(mǎn)、以及讀/寫(xiě)時(shí)鐘、使能和數據信號線(xiàn)。因此應該根據FIFO的標志位empty和full來(lái)產(chǎn)生AURORA的發(fā)送時(shí)序,參考模型如圖8所示:當RESET信號到來(lái)之時(shí),首先將S0置為高電平,將S1置為低電平,同時(shí)根據FULL和EM-PTY的狀態(tài)確定接下來(lái)的S0和S1的狀態(tài),進(jìn)而根據以上邏輯關(guān)系得到TX_SOF_N,TX_EOF_N,TX_SRC_RDY_N等邏輯信號,并且根據數據X_DST_RDY_N和TX_SRC_RDY_N生成FIFO的讀使能。由以上邏輯可以看出,只有在FULL為1,EMPTY為0時(shí),FIFO的讀使能才能被打開(kāi)。TX_SOF_N為數據包的幀頭標志,TX_EOF_N為數據包的幀尾標志,TX_STC_RDY_N為低時(shí)代表數據有效,TX_DST_RDY_N為輸入信號,根據此輸入信號確定FIFO的讀寫(xiě)時(shí)序。

基于FPGA的高速串行傳輸系統的設計與實(shí)現

對FIFO時(shí)序操作需要根據上述電路圖所產(chǎn)生。在上述電路圖中,有一個(gè)D觸發(fā)器,其RESET信號是復位信號,復位既是將觸發(fā)器輸出端口清零,即將S0置1,將S1置0。在之前的程序中誤將這里寫(xiě)反,即RESET信號到來(lái)之后,將S0置0,S1置1。這樣導致的結果是在最開(kāi)始輸入的一段數據丟失,之后的結果輸出正常。經(jīng)過(guò)仿真分析之后檢查出問(wèn)題并已改正。

2.3 AURORA接收模塊

同樣在A(yíng)URORA協(xié)議模塊中,要實(shí)現對數據的接收,只需在frame_check模塊中對接收的代碼加以修改,增加自己所需要的內容,完成對數據的解碼提取,剔除冗余信息,并完成數據的緩存。

基于FPGA的高速串行傳輸系統的設計與實(shí)現

接收模塊frame_check的RTL級模型圖如圖9所示:其中,RX_D為接收端接收的緩存于FIFO的數據,REsET為復位信號,RX_EOF_N為數據包幀尾的標志,RX_SOF_N為數據包幀頭的標志,TX_SRC_RDY_N為低時(shí)代表數據有效,USER_CLK為系統時(shí)鐘。fifo_out為數據緩存的輸出,ERROR _COUNT為系統檢錯輸出結果。因此在接收端接收模塊的時(shí)序圖如圖10所示。根據該時(shí)序圖可以確定接收時(shí)序,同樣,在A(yíng)URORA協(xié)議末端,由于與下一級系統的速率可能不匹配,因此需要在接收末端加上一個(gè)FIFO做緩存,同樣其電路圖如圖11所示:根據RX_SRC_RDY_N生成FIFO的寫(xiě)使能信號,該發(fā)送模塊設計完畢。

3 測試分析

3.1 功能測試

在基本功能測試中,主要測試光纖模塊傳輸是否正確。由于光纖模塊共有A,B,C,D四個(gè)通道,對每個(gè)通道都要進(jìn)行讀/寫(xiě)測試。將通道A作為數據發(fā)送端,通道B作為數據接收端,應用光纖將A,B兩端進(jìn)行聯(lián)通,然后將應用程序數據寫(xiě)入A通道FIFO中,當FPGA接收到到數據后,將A通道數據通過(guò)光纖傳輸到通道B接收緩存中,然后通道B將數據發(fā)送到上位機,從而形成一個(gè)環(huán)路。比較發(fā)送和接受端的數據,可以驗證數據傳輸的正確性。同理可以將此方法應用于四個(gè)通道中的任意兩個(gè)作為發(fā)送端和接收端,從而驗證并測試傳輸功能。

3.2 性能測試

性能主要對其傳輸速度和傳輸誤碼率進(jìn)行測試。就傳輸速度而言,主要由FPGA控制,在其內部設置了兩個(gè)初始值為0的計數器,在PCI-Express開(kāi)始傳輸數據時(shí),FPGA開(kāi)始計數讀/寫(xiě)數據包和發(fā)送數據包的個(gè)數,然后每隔一段時(shí)間將計數值寫(xiě)入兩個(gè)計數寄存器中,并將原有值替換,為了精確速率,可以縮短計數時(shí)間,并多次測試取平均值,就可得到傳輸瞬時(shí)速度。經(jīng)測試:PCI-Express接口的傳輸速度在600MB/s,光纖傳輸在850MB/s,滿(mǎn)足設計要求。對于誤碼率的測試,主要使用誤碼分析軟件對其誤碼性能進(jìn)行測量,設計由上位機和PCI-Express接口,光纖通道組成數據傳輸環(huán)路,通過(guò)不同的指令和要求驗證傳輸正確性,當數據包大小在4Kb,8Kb,16Kb,32Kb,測試數據長(cháng)度分別為1000Kb,1000000Kb,100000000Kb時(shí),錯誤率都為0b,誤碼率滿(mǎn)足設計要求。

4 結語(yǔ)

該設計系統以Virtex-5為核心構建的平臺,對AURORA協(xié)議下串行傳輸系統進(jìn)行了設計與實(shí)現。通過(guò)對核心問(wèn)題的解決,將計算機與外部擴展很好的結合,達到信號傳輸的高速、穩定的目的。實(shí)驗證明,板卡設計的整體思路和核心方法的解決是完備的,并使得板卡的傳輸速率和穩定性的到了較大的提高。



關(guān)鍵詞: FPGA 高速串行傳輸

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>