基于FPGA的高速串行傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
對(duì)FIFO時(shí)序操作需要根據(jù)上述電路圖所產(chǎn)生。在上述電路圖中,有一個(gè)D觸發(fā)器,其RESET信號(hào)是復(fù)位信號(hào),復(fù)位既是將觸發(fā)器輸出端口清零,即將S0置1,將S1置0。在之前的程序中誤將這里寫反,即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的寫使能信號(hào),該發(fā)送模塊設(shè)計(jì)完畢。
3 測(cè)試分析
3.1 功能測(cè)試
在基本功能測(cè)試中,主要測(cè)試光纖模塊傳輸是否正確。由于光纖模塊共有A,B,C,D四個(gè)通道,對(duì)每個(gè)通道都要進(jìn)行讀/寫測(cè)試。將通道A作為數(shù)據(jù)發(fā)送端,通道B作為數(shù)據(jù)接收端,應(yīng)用光纖將A,B兩端進(jìn)行聯(lián)通,然后將應(yīng)用程序數(shù)據(jù)寫入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ù)讀/寫數(shù)據(jù)包和發(fā)送數(shù)據(jù)包的個(gè)數(shù),然后每隔一段時(shí)間將計(jì)數(shù)值寫入兩個(gè)計(jì)數(shù)寄存器中,并將原有值替換,為了精確速率,可以縮短計(jì)數(shù)時(shí)間,并多次測(cè)試取平均值,就可得到傳輸瞬時(shí)速度。經(jīng)測(cè)試:PCI-Express接口的傳輸速度在600MB/ s,光纖傳輸在850 MB/s,滿足設(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,誤碼率滿足設(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)定性的到了較大的提高。
評(píng)論