基于FPGA的高速串行傳輸系統(tǒng)的設(shè)計與實現(xiàn)
對FIFO時序操作需要根據(jù)上述電路圖所產(chǎn)生。在上述電路圖中,有一個D觸發(fā)器,其RESET信號是復(fù)位信號,復(fù)位既是將觸發(fā)器輸出端口清零,即將S0置1,將S1置0。在之前的程序中誤將這里寫反,即RESET信號到來之后,將S0置0,S1置1。這樣導(dǎo)致的結(jié)果是在最開始輸入的一段數(shù)據(jù)丟失,之后的結(jié)果輸出正常。經(jīng)過仿真分析之后檢查出問題并已改正。
2.3 AURORA接收模塊
同樣在AURORA協(xié)議模塊中,要實現(xiàn)對數(shù)據(jù)的接收,只需在frame_check模塊中對接收的代碼加以修改,增加自己所需要的內(nèi)容,完成對數(shù)據(jù)的解碼提取,剔除冗余信息,并完成數(shù)據(jù)的緩存。
接收模塊frame_check的RTL級模型圖如圖9所示:其中,RX_D為接收端接收的緩存于FIFO的數(shù)據(jù),REsET為復(fù)位信號,RX_EOF_N為數(shù)據(jù)包幀尾的標(biāo)志,RX_SOF_N為數(shù)據(jù)包幀頭的標(biāo)志,TX_SRC_RDY_N為低時代表數(shù)據(jù)有效,USER_CLK為系統(tǒng)時鐘。fifo_out為數(shù)據(jù)緩存的輸出,ERROR _COUNT為系統(tǒng)檢錯輸出結(jié)果。因此在接收端接收模塊的時序圖如圖10所示。根據(jù)該時序圖可以確定接收時序,同樣,在AURORA協(xié)議末端,由于與下一級系統(tǒng)的速率可能不匹配,因此需要在接收末端加上一個FIFO做緩存,同樣其電路圖如圖11所示:根據(jù)RX_SRC_RDY_N生成FIFO的寫使能信號,該發(fā)送模塊設(shè)計完畢。
3 測試分析
3.1 功能測試
在基本功能測試中,主要測試光纖模塊傳輸是否正確。由于光纖模塊共有A,B,C,D四個通道,對每個通道都要進(jìn)行讀/寫測試。將通道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ù)通過光纖傳輸?shù)酵ǖ繠接收緩存中,然后通道B將數(shù)據(jù)發(fā)送到上位機(jī),從而形成一個環(huán)路。比較發(fā)送和接受端的數(shù)據(jù),可以驗證數(shù)據(jù)傳輸?shù)恼_性。同理可以將此方法應(yīng)用于四個通道中的任意兩個作為發(fā)送端和接收端,從而驗證并測試傳輸功能。
3.2 性能測試
性能主要對其傳輸速度和傳輸誤碼率進(jìn)行測試。就傳輸速度而言,主要由FPGA控制,在其內(nèi)部設(shè)置了兩個初始值為0的計數(shù)器,在PCI-Express開始傳輸數(shù)據(jù)時,FPGA開始計數(shù)讀/寫數(shù)據(jù)包和發(fā)送數(shù)據(jù)包的個數(shù),然后每隔一段時間將計數(shù)值寫入兩個計數(shù)寄存器中,并將原有值替換,為了精確速率,可以縮短計數(shù)時間,并多次測試取平均值,就可得到傳輸瞬時速度。經(jīng)測試:PCI-Express接口的傳輸速度在600MB/ s,光纖傳輸在850 MB/s,滿足設(shè)計要求。對于誤碼率的測試,主要使用誤碼分析軟件對其誤碼性能進(jìn)行測量,設(shè)計由上位機(jī)和PCI-Express接口,光纖通道組成數(shù)據(jù)傳輸環(huán)路,通過不同的指令和要求驗證傳輸正確性,當(dāng)數(shù)據(jù)包大小在4 Kb,8 Kb,16 Kb,32 Kb,測試數(shù)據(jù)長度分別為1 000 Kb,1 000 000 Kb,100 000 000 Kb時,錯誤率都為0 b,誤碼率滿足設(shè)計要求。
4 結(jié)語
該設(shè)計系統(tǒng)以Virtex-5為核心構(gòu)建的平臺,對AURORA協(xié)議下串行傳輸系統(tǒng)進(jìn)行了設(shè)計與實現(xiàn)。通過對核心問題的解決,將計算機(jī)與外部擴(kuò)展很好的結(jié)合,達(dá)到信號傳輸?shù)母咚佟⒎€(wěn)定的目的。實驗證明,板卡設(shè)計的整體思路和核心方法的解決是完備的,并使得板卡的傳輸速率和穩(wěn)定性的到了較大的提高。
評論