當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于FPGA的高速串行傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

摘要:作為高傳輸速率和低設(shè)計(jì)成本的傳輸技術(shù),串行傳輸技術(shù)被廣泛應(yīng)用于高速通信領(lǐng)域,并已成為業(yè)

界首選。在此基于對(duì)高速串行傳輸系統(tǒng)的分析,對(duì)實(shí)例進(jìn)行了總體設(shè)計(jì)驗(yàn)證,最終達(dá)到高速傳輸?shù)哪康摹?br /> 關(guān)鍵詞:FPGA;PCI-Express;時(shí)鐘控制模塊;Aurora模塊

0 引言
   
隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,數(shù)據(jù)交換、數(shù)據(jù)傳輸流量越來(lái)越大。尤其像雷達(dá),氣象、航天等領(lǐng)域,不僅數(shù)

據(jù)運(yùn)算率巨大,計(jì)算處理復(fù)雜,而且需要實(shí)時(shí)高速遠(yuǎn)程傳輸,需要長(zhǎng)期穩(wěn)定有效的信號(hào)加以支持,以便能

夠獲得更加精準(zhǔn)的數(shù)據(jù)收發(fā)信息,更好的為工程項(xiàng)目服務(wù)。傳統(tǒng)的并行傳輸方式由于走線(xiàn)多、信號(hào)間串?dāng)_

大等缺陷,無(wú)法突破自身的速度瓶頸。而串行傳輸擁有更高的傳輸速率但只需要少量的信號(hào)線(xiàn),降低了背

板開(kāi)發(fā)成本和復(fù)雜度,滿(mǎn)足高頻率遠(yuǎn)距離的數(shù)據(jù)通信需求,被廣泛應(yīng)用到各種高速數(shù)據(jù)通信系統(tǒng)設(shè)計(jì)中。
   
目前,高速串行接口取代并行拓?fù)浣Y(jié)構(gòu)已經(jīng)是大勢(shì)所趨。當(dāng)今很多公用互連標(biāo)準(zhǔn)(如USB,PCI-Express)都

是基于串行連接來(lái)實(shí)現(xiàn)高速傳輸?shù)?。相比于并行總線(xiàn),串行連接的物理緊密度和鏈路韌性具有很多優(yōu)勢(shì)。

因此,很多傳輸領(lǐng)域都轉(zhuǎn)向了串行傳輸,如筆記本電腦顯示互連、高速背板互連和存儲(chǔ)器內(nèi)部互連。該系

統(tǒng)涉及到的技術(shù)主要包括:光纖傳輸、PCIE(PCI-Express)傳輸和DDR緩存技術(shù),以及這幾種技術(shù)在FPGA中

融合為一個(gè)完整的串行傳輸鏈路,并實(shí)現(xiàn)了在兩臺(tái)服務(wù)器之間的高速數(shù)據(jù)傳輸測(cè)試,這對(duì)于實(shí)際工程應(yīng)用

具有重要的現(xiàn)實(shí)意義。

1 系統(tǒng)結(jié)構(gòu)
   
高速串行傳輸系統(tǒng)作為數(shù)據(jù)采集、傳輸、存儲(chǔ)中的一部分,對(duì)傳輸性能指標(biāo)有著嚴(yán)格的要求。該系統(tǒng)要完

成光信號(hào)到PCI-Express接口信號(hào)的相互轉(zhuǎn)換,并在轉(zhuǎn)換過(guò)程中完成數(shù)據(jù)的高速傳輸。信號(hào)一般可達(dá)4.25

Gb/s,處理如此高的數(shù)據(jù)對(duì)硬件設(shè)計(jì)提出了很大的挑戰(zhàn)。其中所包含的硬件有:高速光電轉(zhuǎn)換電路,

FPGA數(shù)據(jù)處理電路、DDRⅡ數(shù)據(jù)緩存電路、時(shí)鐘管理電路、PCIE傳輸模塊電路、電源模塊電路、自定義擴(kuò)

展接口電路。系統(tǒng)框圖如圖1所示。


   
技術(shù)要求主要有以下幾點(diǎn):首先,傳輸卡中的4個(gè)光纖通道,每通道要達(dá)到2 Gb/s以上。其次,PCIE傳輸

速率不小于6 Gb/s,支持DMA傳輸。再有,光纖和PCI-E傳輸誤碼率要小于1×10-10,連續(xù)傳輸相對(duì)穩(wěn)定

。
   
圖1中各個(gè)模塊的功能如下:Virtex5作為傳輸卡的核心,用來(lái)實(shí)現(xiàn)數(shù)據(jù)從光纖接口到PCIE接口的高速轉(zhuǎn)換

。光纖傳輸模塊的作用是將內(nèi)部數(shù)據(jù)經(jīng)過(guò)編碼后,通過(guò)光纜傳輸給接收系統(tǒng),以及接收外來(lái)光數(shù)據(jù),并將

光數(shù)據(jù)傳送給FPGA處理電路DDR緩存模塊的作用,就是將傳輸過(guò)程中的高速數(shù)據(jù),進(jìn)行緩存,以保持?jǐn)?shù)據(jù)

的完整性。PCI-Express傳輸模塊的作用,就是與PC之間實(shí)現(xiàn)PCI-Express傳輸協(xié)議,與PC實(shí)現(xiàn)串行數(shù)據(jù)傳

輸,同時(shí)與外部擴(kuò)展接口,DDR緩存,光纖傳輸模塊實(shí)現(xiàn)內(nèi)部并行數(shù)據(jù)的交換。QTE自定義接口模塊的作用

,就是進(jìn)行外部功能擴(kuò)展。比如,可以擴(kuò)展高速數(shù)據(jù)采集板卡、存儲(chǔ)硬盤(pán)卡、圖像采集卡等。時(shí)鐘管理模

塊的作用,是給光纖傳輸模塊提供參考時(shí)鐘。時(shí)鐘頻率由FPGA的時(shí)鐘控制模塊控制。根據(jù)光模塊的性能,

給出指定的時(shí)鐘。PCI-Express的參考時(shí)鐘,是通過(guò)芯片從PC主板上提取的。電源管理模塊的作用,是給

整個(gè)系統(tǒng)提供各種不同的電壓。

2 系統(tǒng)模塊設(shè)計(jì)與實(shí)現(xiàn)
   
為了實(shí)現(xiàn)所要求的系統(tǒng)配置,更好地發(fā)揮各模塊自身及相互之間的作用,必須對(duì)模塊間進(jìn)行系統(tǒng)的協(xié)議分

析。該系統(tǒng)的數(shù)據(jù)傳輸是雙向的,既可以傳輸數(shù)據(jù),也可以接收數(shù)據(jù)。它主要由電源管理模塊,時(shí)鐘管理

模塊,PCI-Express傳輸模塊,DDR緩存模塊,光纖傳輸模塊和外部擴(kuò)展接口組成。其中,時(shí)鐘控制模塊和

Aurora發(fā)送模塊、Aurora接收模塊是整個(gè)設(shè)計(jì)的重點(diǎn)。

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

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

[!--empirenews.page--]
   
ICS8442的性能參數(shù)如下:
輸出信號(hào)頻率范圍為31.25~700 MHz;晶振頻率范圍為10~25 MHz;VCO頻率范圍為250~700 MHz;
ICS8442是LVDS邏輯電平,具有極低的相位噪聲,這種特性使它非常適合用來(lái)為吉比特以太網(wǎng)或同步光纖

網(wǎng)提供時(shí)鐘信號(hào)。
ICS8442的內(nèi)部結(jié)構(gòu)圖3所示。ICS8442內(nèi)部有一個(gè)完整的PLL鎖相環(huán),其VCO的輸出頻率范圍在250~700

MHz之間,倍頻系數(shù)是由M決定的,M的取值范圍在10~28之間。VCO的輸出頻率為:


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


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

對(duì)ICS8442時(shí)鐘芯片的操作主要是對(duì)寄存器M,N的寫(xiě)操作。ICS8442支持并行寫(xiě)操作和串行寫(xiě)操作,根據(jù)硬

件電路的設(shè)計(jì),程序采用串行的寫(xiě)操作時(shí)序。當(dāng)ICS8442的nP_LOAD置為高電平和S_LOAD置為低電平時(shí),芯

片實(shí)現(xiàn)串行操作。操作時(shí)序如圖4所示。

當(dāng)S_LOAD置為低且nP_LOAD置為高之后,數(shù)據(jù)在S_CLOCK的上升沿處寄存在緩沖器中,在S_LOAD的下降沿處

將數(shù)據(jù)鎖存到寄存器M,N中。
   
由于AURORA光纖通信的輸出時(shí)鐘頻率設(shè)定的是125 MHz,結(jié)合硬件電路的設(shè)計(jì),硬件晶振的頻率為20 MHz

,因此選擇M值為000011001(25),N的值為10(4),故時(shí)鐘芯片的時(shí)鐘輸出頻率為:


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

圖5是用Chipscope在線(xiàn)邏輯分析儀得到的波形,由于Chipscope在線(xiàn)邏輯分析儀的觸發(fā)時(shí)鐘是100 MHz,因

此在抓取125 MHz的時(shí)鐘信號(hào)時(shí),在圖上顯示的時(shí)鐘信號(hào)占空比不定,若將時(shí)鐘芯片產(chǎn)生的時(shí)鐘頻率降低

,則此現(xiàn)象消失。

2.2 AURORA發(fā)送模塊

在生成AURORA IP CORE時(shí),同時(shí)生成了一個(gè)基于AURORA協(xié)議的例示程序。因此,要實(shí)現(xiàn)基于AURORA協(xié)議的

光纖通信,在發(fā)送端只需要在frame_gen_i模塊將要發(fā)送的數(shù)據(jù)打包,然后通過(guò)AURORA模塊發(fā)送出去。因

此該模塊著重介紹如何將上一級(jí)傳送過(guò)來(lái)的數(shù)據(jù)進(jìn)行打包壓縮,形成適合AURORA協(xié)議的數(shù)據(jù)幀,通過(guò)

AURORA協(xié)議發(fā)送到接收端。圖6為frame_gen_i模塊的RTL級(jí)模型圖。

考慮到上一級(jí)傳輸數(shù)據(jù)速率可能會(huì)與AURORA傳輸?shù)臅r(shí)鐘頻率不同,因此在發(fā)送端建立一個(gè)FIFO來(lái)做緩沖器

。并且AURORA協(xié)議的發(fā)送時(shí)序圖如圖7所示??梢钥闯?,TX_SOF_N為數(shù)據(jù)包幀的開(kāi)始標(biāo)志,TX_EOF_N為數(shù)

據(jù)包幀的結(jié)束.標(biāo)志,TX_REM[0:r(n)]記錄最后的傳輸數(shù)據(jù)的線(xiàn)程,TX_SRC_RDY_N為低代表數(shù)據(jù)有效,

TX_DST_RDY_N為低代表準(zhǔn)備好接受數(shù)據(jù),TX_D[0:(8n-1)]是此模塊的輸出數(shù)據(jù)。以上信息是AURORA協(xié)議

的發(fā)送時(shí)序,在使用FIFO做緩沖時(shí)也應(yīng)該遵循這樣的協(xié)議。

[!--empirenews.page--]


發(fā)送端的FIFO模塊分別包括FIFO的復(fù)位信號(hào)、FIFO空、FIFO滿(mǎn)、以及讀/寫(xiě)時(shí)鐘、使能和數(shù)據(jù)信號(hào)線(xiàn)。因

此應(yīng)該根據(jù)FIFO的標(biāo)志位empty和full來(lái)產(chǎn)生AURORA的發(fā)送時(shí)序,參考模型如圖8所示:當(dāng)RESET信號(hào)到來(lái)

之時(shí),首先將S0置為高電平,將S1置為低電平,同時(shí)根據(jù)FULL和EM-PTY的狀態(tài)確定接下來(lái)的S0和S1的狀態(tài)

,進(jìn)而根據(jù)以上邏輯關(guān)系得到TX_SOF_N,TX_EOF_N,TX_SRC_RDY_N等邏輯信號(hào),并且根據(jù)數(shù)據(jù)X_DST_

RDY_N和TX_SRC_RDY_N生成FIFO的讀使能。由以上邏輯可以看出,只有在FULL為1,EMPTY為0時(shí),F(xiàn)IFO的讀

使能才能被打開(kāi)。TX_SOF_N為數(shù)據(jù)包的幀頭標(biāo)志,TX_EOF_N為數(shù)據(jù)包的幀尾標(biāo)志,TX_STC_RDY_N為低時(shí)代

表數(shù)據(jù)有效,TX_DST_RDY_N為輸入信號(hào),根據(jù)此輸入信號(hào)確定FIFO的讀寫(xiě)時(shí)序。

對(duì)FIFO時(shí)序操作需要根據(jù)上述電路圖所產(chǎn)生。在上述電路圖中,有一個(gè)D觸發(fā)器,其RESET信號(hào)是復(fù)位信號(hào)

,復(fù)位既是將觸發(fā)器輸出端口清零,即將S0置1,將S1置0。在之前的程序中誤將這里寫(xiě)反,即RESET信號(hào)

到來(lái)之后,將S0置0,S1置1。這樣導(dǎo)致的結(jié)果是在最開(kāi)始輸入的一段數(shù)據(jù)丟失,之后的結(jié)果輸出正常。經(jīng)

過(guò)仿真分析之后檢查出問(wèn)題并已改正。

2.3 AURORA接收模塊

同樣在AURORA協(xié)議模塊中,要實(shí)現(xiàn)對(duì)數(shù)據(jù)的接收,只需在frame_check模塊中對(duì)接收的代碼加以修改,增

加自己所需要的內(nèi)容,完成對(duì)數(shù)據(jù)的解碼提取,剔除冗余信息,并完成數(shù)據(jù)的緩存。

接收模塊frame_check的RTL級(jí)模型圖如圖9所示:其中,RX_D為接收端接收的緩存于FIFO的數(shù)據(jù),REsET為

復(fù)位信號(hào),RX_EOF_N為數(shù)據(jù)包幀尾的標(biāo)志,RX_SOF_N為數(shù)據(jù)包幀頭的標(biāo)志,TX_SRC_RDY_N為低時(shí)代表數(shù)據(jù)

有效,USER_CLK為系統(tǒng)時(shí)鐘。fifo_out為數(shù)據(jù)緩存的輸出,ERROR _COUNT為系統(tǒng)檢錯(cuò)輸出結(jié)果。因此在接

收端接收模塊的時(shí)序圖如圖10所示。根據(jù)該時(shí)序圖可以確定接收時(shí)序,同樣,在AURORA協(xié)議末端,由于與

下一級(jí)系統(tǒng)的速率可能不匹配,因此需要在接收末端加上一個(gè)FIFO做緩存,同樣其電路圖如圖11所示:根

據(jù)RX_SRC_RDY_N生成FIFO的寫(xiě)使能信號(hào),該發(fā)送模塊設(shè)計(jì)完畢。

3 測(cè)試分析

3.1 功能測(cè)試

在基本功能測(cè)試中,主要測(cè)試光纖模塊傳輸是否正確。由于光纖模塊共有A,B,C,D四個(gè)通道,對(duì)每個(gè)通

道都要進(jìn)行讀/寫(xiě)測(cè)試。將通道A作為數(shù)據(jù)發(fā)送端,通道B作為數(shù)據(jù)接收端,應(yīng)用光纖將A,B兩端進(jìn)行聯(lián)通

,然后將應(yīng)用程序數(shù)據(jù)寫(xiě)入A通道FIFO中,當(dāng)FPGA接收到到數(shù)據(jù)后,將A通道數(shù)據(jù)通過(guò)光纖傳輸?shù)酵ǖ繠接

收緩存中,然后通道B將數(shù)據(jù)發(fā)送到上位機(jī),從而形成一個(gè)環(huán)路。比較發(fā)送和接受端的數(shù)據(jù),可以驗(yàn)證數(shù)

據(jù)傳輸?shù)恼_性。同理可以將此方法應(yīng)用于四個(gè)通道中的任意兩個(gè)作為發(fā)送端和接收端,從而驗(yàn)證并測(cè)試

傳輸功能。

3.2 性能測(cè)試

性能主要對(duì)其傳輸速度和傳輸誤碼率進(jìn)行測(cè)試。就傳輸速度而言,主要由FPGA控制,在其內(nèi)部設(shè)置了兩個(gè)

初始值為0的計(jì)數(shù)器,在PCI-Express開(kāi)始傳輸數(shù)據(jù)時(shí),FPGA開(kāi)始計(jì)數(shù)讀/寫(xiě)數(shù)據(jù)包和發(fā)送數(shù)據(jù)包的個(gè)數(shù),

然后每隔一段時(shí)間將計(jì)數(shù)值寫(xiě)入兩個(gè)計(jì)數(shù)寄存器中,并將原有值替換,為了精確速率,可以縮短計(jì)數(shù)時(shí)間

,并多次測(cè)試取平均值,就可得到傳輸瞬時(shí)速度。經(jīng)測(cè)試:PCI-Express接口的傳輸速度在600MB/  s,

光纖傳輸在850 MB/s,滿(mǎn)足設(shè)計(jì)要求。對(duì)于誤碼率的測(cè)試,主要使用誤碼分析軟件對(duì)其誤碼性能進(jìn)行測(cè)

量,設(shè)計(jì)由上位機(jī)和PCI-Express接口,光纖通道組成數(shù)據(jù)傳輸環(huán)路,通過(guò)不同的指令和要求驗(yàn)證傳輸正

確性,當(dāng)數(shù)據(jù)包大小在4 Kb,8 Kb,16 Kb,32 Kb,測(cè)試數(shù)據(jù)長(zhǎng)度分別為1 000 Kb,1 000 000 Kb,100

000 000 Kb時(shí),錯(cuò)誤率都為0 b,誤碼率滿(mǎn)足設(shè)計(jì)要求。

4 結(jié)語(yǔ)

該設(shè)計(jì)系統(tǒng)以Virtex-5為核心構(gòu)建的平臺(tái),對(duì)AURORA協(xié)議下串行傳輸系統(tǒng)進(jìn)行了設(shè)計(jì)與實(shí)現(xiàn)。通過(guò)對(duì)核心

問(wèn)題的解決,將計(jì)算機(jī)與外部擴(kuò)展很好的結(jié)合,達(dá)到信號(hào)傳輸?shù)母咚?、穩(wěn)定的目的。實(shí)驗(yàn)證明,板卡設(shè)計(jì)

的整體思路和核心方法的解決是完備的,并使得板卡的傳輸速率和穩(wěn)定性的到了較大的提高。
 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉