基于MPSoC的以太網(wǎng)接口設(shè)計與實現(xiàn)
2.2 接口時序圖
本文引用地址:http://m.butianyuan.cn/article/266251.htm以太網(wǎng)控制器IP核接口時序如圖5(a)所示。主要有3類信號:時鐘信號、控制信號和數(shù)據(jù)信號。時鐘信號為clock。而控制信號有sof_ n、eof_n、scr_rdy_n,其中sof_n表示幀傳輸開始控制信號,eof_n為幀傳輸結(jié)束控制信號,scr_rdy_n為傳輸有效控制信號,控制信號均為低電平有效。用戶端數(shù)據(jù)信號為Data。網(wǎng)路接口側(cè)時序圖如圖5(b)所示。信號包括ip_stb、ip_ack、ip_fail、ip_fwd、ip_cancal、ip_sus pond。它們?yōu)槎嗪讼到y(tǒng)網(wǎng)絡(luò)通訊的完成握手應(yīng)答傳輸機(jī)制??刂菩盘柧鶠楦唠娖接行В琲p_data是數(shù)據(jù)傳輸信號。
2.3 發(fā)送模塊設(shè)計
發(fā)送模塊完成數(shù)據(jù)以太網(wǎng)IP核接口到網(wǎng)路的數(shù)據(jù)接口協(xié)議轉(zhuǎn)換,如圖2所示。該模塊包括發(fā)送讀控制器,發(fā)送數(shù)據(jù)緩存模塊和發(fā)送寫控制器。發(fā)送讀控制器完成目的地址、源地址和數(shù)據(jù)類型的數(shù)據(jù)信息截斷,把傳播的有效數(shù)據(jù)寫入發(fā)送數(shù)據(jù)緩存模塊中,設(shè)計通過一個有限狀態(tài)機(jī)結(jié)合計數(shù)器來完成功能的實現(xiàn)。發(fā)送數(shù)據(jù)緩存模塊用一個異步FIFO來承擔(dān),同時完成數(shù)據(jù)8~32位的數(shù)據(jù)寬度擴(kuò)展,同時完成跨時鐘域數(shù)據(jù)傳輸任務(wù)。由于該模塊數(shù)據(jù)讀入是高時鐘頻率的8位數(shù)據(jù),數(shù)據(jù)讀出是系統(tǒng)時鐘頻率下的32位數(shù)據(jù),數(shù)據(jù)的流動是由慢到快的傳遞過程,因此選用一個深度為64的FIFO單元來承擔(dān)。發(fā)送寫控制模塊通過讀取緩存模塊中的數(shù)據(jù),配置發(fā)送數(shù)據(jù)的有效信息,完成網(wǎng)絡(luò)數(shù)據(jù)包格式封裝,最后傳輸至多核系統(tǒng)通信網(wǎng)絡(luò)資源接口。
2.4 接收模塊設(shè)計
接收模塊承擔(dān)網(wǎng)絡(luò)數(shù)據(jù)包協(xié)議到以太網(wǎng)IP核接口協(xié)議轉(zhuǎn)換,包含接收寫控制器、接收數(shù)據(jù)緩存模塊和接收讀控制器。接收寫控制器模塊設(shè)計,通過網(wǎng)絡(luò)控制信號和FIFO標(biāo)識信號以及當(dāng)前狀態(tài)改變狀態(tài)機(jī)的狀態(tài)跳轉(zhuǎn)。根據(jù)不同狀態(tài)產(chǎn)生控制信號,實現(xiàn)網(wǎng)絡(luò)包、配置包、結(jié)束包和負(fù)載信息的截取,把傳播的有效數(shù)據(jù)寫入數(shù)據(jù)緩沖模塊。數(shù)據(jù)緩存模塊把32位網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)換到8位寬的以太網(wǎng)控制器接口數(shù)據(jù),同時實現(xiàn)數(shù)據(jù)跨時鐘域傳輸任務(wù)。該數(shù)據(jù)流動方向,速度是由快到慢的過程,結(jié)合硬件邏輯資源和任務(wù)請求的頻度,該設(shè)計選用一個深度為1 024,寬度為32的異步FIFO單元來承擔(dān)。接收讀控制器模塊通過讀取緩存FIFO中數(shù)據(jù),配置發(fā)送數(shù)據(jù)的源和目的網(wǎng)卡地址及幀類型,完成以太網(wǎng)數(shù)據(jù)幀的封裝,傳輸至以太網(wǎng)IP核用戶端接口。
3 實驗結(jié)果
該硬件結(jié)構(gòu)在Xilinx M525開發(fā)板上驗證實現(xiàn),FPGA芯片型號為Virtex-5 XC6VLX550T,其中芯片邏輯資源為207360,存儲資源為11.39 MB,寄存器資源為207 360,系統(tǒng)硬件在FPGA中資源占用如表1所示。
表1是系統(tǒng)設(shè)計通過ModelSim功能仿真后,在Xilinx ISE工具上綜合后的結(jié)果,綜合頻率高達(dá)245.562 MHz。在系統(tǒng)運(yùn)行中,以太網(wǎng)控制器IP核時鐘工作頻率在125MHz,系統(tǒng)時鐘頻率為100MHz。通過仿真和FPGA下載驗證后,接口通訊時鐘周期統(tǒng)計如表2所示。
通過表2可以看出,以太網(wǎng)接口設(shè)計在完成兩種協(xié)議轉(zhuǎn)換和跨時鐘數(shù)據(jù)傳輸中,通訊響應(yīng)時間短,且具有實時和穩(wěn)定傳輸,避免了異步時鐘在數(shù)據(jù)傳輸中的效率問題。
實驗測試,把FPGA開發(fā)板與PC機(jī)通過網(wǎng)線連接,如圖6所示。在PC機(jī)上編寫軟件程序,用于發(fā)送和接收硬件系統(tǒng)數(shù)據(jù),通過修改數(shù)據(jù)文件,測試不同深度的數(shù)據(jù)傳輸。比較發(fā)送數(shù)據(jù)和接收數(shù)據(jù)文件,判斷傳輸誤碼率。
實驗測試了不同文件大小的數(shù)據(jù)傳輸需要時間,統(tǒng)計結(jié)果如圖7所示。測試結(jié)果,發(fā)送與接收文件數(shù)據(jù),與預(yù)期結(jié)果一致。通訊時間與數(shù)據(jù)文件大小近似于線性關(guān)系,且傳輸時間短。以太網(wǎng)接口設(shè)計模塊為MPSoC承擔(dān)網(wǎng)絡(luò)數(shù)據(jù)通訊,提供了實時和高吞吐率的通訊速度。此外,以太網(wǎng)模塊可以用于系統(tǒng)單模塊集成調(diào)試傳輸源數(shù)據(jù),提高驗證效率。以太網(wǎng)接口模塊也可以應(yīng)用于通訊網(wǎng)絡(luò),實現(xiàn)系統(tǒng)數(shù)據(jù)與網(wǎng)絡(luò)通訊信息的交換。
4 結(jié)束語
研究了以太網(wǎng)在MPSoC中的數(shù)據(jù)通訊,解決了系統(tǒng)在網(wǎng)路通訊中的實時和高吞吐率的數(shù)據(jù)傳輸瓶頸。通過該接口與多核系統(tǒng)通訊,可以完成局域網(wǎng)到廣域網(wǎng)數(shù)據(jù)信息傳遞。
評論