隨著電子信息技術發(fā)展,網絡通信在日常生活中應用越來越廣泛,以太網技術經歷了10 Mbit·s-1到10 Gbit·s-1的發(fā)展歷程。當前電子設備網絡化、多媒體技術、數(shù)字圖像處理技術成為研究的熱點,片上多核系統(tǒng)(Multi-processor system-on-chip,MPSoC)在復雜數(shù)字系統(tǒng)中成為主要的硬件結構方案。這類系統(tǒng)通常用以太網完成數(shù)據(jù)通信,以太網接口設計與實現(xiàn)是一個關鍵部分。
數(shù)字系統(tǒng)規(guī)模不斷增大,隨著市場激烈競爭,系統(tǒng)開發(fā)周期要求也變得苛刻,目前,片上多核系統(tǒng)基于IP核的設計成為了主流趨勢。系統(tǒng)性能的提高,片上集成的處理器數(shù)量也不斷增多,基于網絡結構的片上多核系統(tǒng)相比總線結構的設計優(yōu)勢越來越顯著。Xilinx公司和Ahera公司開發(fā)的FPGA芯片針對不同型號,都提供了許多不同類型和不同功能的IP核。然而,復雜數(shù)字系統(tǒng),采樣FPGA實現(xiàn),在開發(fā)難度和成本上占有明顯優(yōu)勢。
1 MPSoC系統(tǒng)架構
MPSo采用NoC(Network-on-Chip,NoC)通訊結構,處理器和IP核通過資源接口與網絡通訊。系統(tǒng)結構如圖1所示,處理器與IP核采用總線通訊方式形成簇結構,簇、以太網模塊和DDR模塊通過資源接口與網絡進行通訊。圖中運算簇集成了兩個處理器,完成數(shù)據(jù)運算,轉置簇集成一個ARM控制器承擔數(shù)據(jù)的行與列交換,DDR模塊為片外存儲芯片的控制器,以太網承擔著系統(tǒng)的數(shù)據(jù)通訊模塊,主要實現(xiàn)系統(tǒng)的數(shù)據(jù)傳輸。
2 以太網接口設計
以太網模塊設計主要完成以太網控制器IP核用戶端接口協(xié)議與多核系統(tǒng)網路通訊協(xié)議的轉換。以太網接口硬件結構設計如圖2所示,以太網控制器IP核為Xilinx公司ISE軟件例化生成的千兆網控制器。接收模塊完成系統(tǒng)網絡數(shù)據(jù)輸出到以太網控制器IP核用戶端數(shù)據(jù)輸入的協(xié)議轉換,發(fā)送模塊承擔以太網控制器用戶端數(shù)據(jù)輸出到網路數(shù)據(jù)輸入的協(xié)議匹配。網絡接口模塊為多核系統(tǒng)通訊資源接口。
2.1 幀格式定義
圖3所示為兩種協(xié)議的數(shù)據(jù)格式定義。以太網IP核用戶接口數(shù)據(jù)以幀格式定義數(shù)據(jù)的輸出或輸入,數(shù)據(jù)寬度為8位,幀數(shù)據(jù)長度范圍為64~1 518 Byte,在具體硬件設計中一般選擇固定數(shù)據(jù)長度傳輸,使硬件結構設計簡單。具體格式如圖3(a)所示,先輸入的數(shù)據(jù)為目的網卡的網絡地址,數(shù)據(jù)長度為6Byte。其次是6 Byte的源片網絡地址。接著為幀傳輸定義的類型或數(shù)據(jù)傳輸長度,長度占2 Byte,數(shù)據(jù)長度通常在數(shù)據(jù)幀比較短情況指定。如0010,表示后面?zhèn)鬏數(shù)?6個數(shù)據(jù)是有效的,傳輸多余長度的數(shù)據(jù),以太網控制器IP核默認為無效數(shù)據(jù)。而采用類型定義來傳輸幀,在數(shù)據(jù)傳輸長度范圍內,結束控制信號以前的數(shù)據(jù)都表示為有效數(shù)據(jù)。文中選用512的固定數(shù)據(jù)傳輸長度和8 000標識的幀類型完成硬件設計。
網路接口數(shù)據(jù)包格式如圖3(b)所示,數(shù)據(jù)深度定義為變長,數(shù)據(jù)寬度為34位,為多核系統(tǒng)實時高效的數(shù)據(jù)傳輸提供良好的協(xié)調作用。第一個數(shù)據(jù)為系統(tǒng)網絡協(xié)議的路由包,其后一個數(shù)據(jù)為配置信息,稱為配置包。接著為不定長度有效數(shù)據(jù)包。有效數(shù)據(jù)包發(fā)送結束后,緊接著發(fā)送一個數(shù)據(jù)結束包。
網路數(shù)據(jù)包中不同包類型的格式定義,具體描述如圖4所示,數(shù)據(jù)高2位標識不同包格式類型。當高2位為11 B時,標識為路由包,其中第28~17位表示傳輸?shù)臄?shù)據(jù)長度,第16位到第9位定義數(shù)據(jù)源傳播的網絡坐標地址,低8位定義為數(shù)據(jù)通訊的目的網絡地址,剩下數(shù)據(jù)位定義為保留位。當高2位為10B時,標識為配置包,其他位根據(jù)通信需求,設置不同配置信息。當高2位為00B時,標識為數(shù)據(jù)包,剩余位為傳輸?shù)挠行?shù)據(jù)信息。當高2位為01B時,標識為結束包,其它位為保留位。
2.2 接口時序圖
以太網控制器IP核接口時序如圖5(a)所示。主要有3類信號:時鐘信號、控制信號和數(shù)據(jù)信號。時鐘信號為clock。而控制信號有sof_ n、eof_n、scr_rdy_n,其中sof_n表示幀傳輸開始控制信號,eof_n為幀傳輸結束控制信號,scr_rdy_n為傳輸有效控制信號,控制信號均為低電平有效。用戶端數(shù)據(jù)信號為Data。網路接口側時序圖如圖5(b)所示。信號包括ip_stb、ip_ack、ip_fail、ip_fwd、ip_cancal、ip_sus pond。它們?yōu)槎嗪讼到y(tǒng)網絡通訊的完成握手應答傳輸機制。控制信號均為高電平有效,ip_data是數(shù)據(jù)傳輸信號。
2.3 發(fā)送模塊設計
發(fā)送模塊完成數(shù)據(jù)以太網IP核接口到網路的數(shù)據(jù)接口協(xié)議轉換,如圖2所示。該模塊包括發(fā)送讀控制器,發(fā)送數(shù)據(jù)緩存模塊和發(fā)送寫控制器。發(fā)送讀控制器完成目的地址、源地址和數(shù)據(jù)類型的數(shù)據(jù)信息截斷,把傳播的有效數(shù)據(jù)寫入發(fā)送數(shù)據(jù)緩存模塊中,設計通過一個有限狀態(tài)機結合計數(shù)器來完成功能的實現(xiàn)。發(fā)送數(shù)據(jù)緩存模塊用一個異步FIFO來承擔,同時完成數(shù)據(jù)8~32位的數(shù)據(jù)寬度擴展,同時完成跨時鐘域數(shù)據(jù)傳輸任務。由于該模塊數(shù)據(jù)讀入是高時鐘頻率的8位數(shù)據(jù),數(shù)據(jù)讀出是系統(tǒng)時鐘頻率下的32位數(shù)據(jù),數(shù)據(jù)的流動是由慢到快的傳遞過程,因此選用一個深度為64的FIFO單元來承擔。發(fā)送寫控制模塊通過讀取緩存模塊中的數(shù)據(jù),配置發(fā)送數(shù)據(jù)的有效信息,完成網絡數(shù)據(jù)包格式封裝,最后傳輸至多核系統(tǒng)通信網絡資源接口。
2.4 接收模塊設計
接收模塊承擔網絡數(shù)據(jù)包協(xié)議到以太網IP核接口協(xié)議轉換,包含接收寫控制器、接收數(shù)據(jù)緩存模塊和接收讀控制器。接收寫控制器模塊設計,通過網絡控制信號和FIFO標識信號以及當前狀態(tài)改變狀態(tài)機的狀態(tài)跳轉。根據(jù)不同狀態(tài)產生控制信號,實現(xiàn)網絡包、配置包、結束包和負載信息的截取,把傳播的有效數(shù)據(jù)寫入數(shù)據(jù)緩沖模塊。數(shù)據(jù)緩存模塊把32位網絡數(shù)據(jù)轉換到8位寬的以太網控制器接口數(shù)據(jù),同時實現(xiàn)數(shù)據(jù)跨時鐘域傳輸任務。該數(shù)據(jù)流動方向,速度是由快到慢的過程,結合硬件邏輯資源和任務請求的頻度,該設計選用一個深度為1 024,寬度為32的異步FIFO單元來承擔。接收讀控制器模塊通過讀取緩存FIFO中數(shù)據(jù),配置發(fā)送數(shù)據(jù)的源和目的網卡地址及幀類型,完成以太網數(shù)據(jù)幀的封裝,傳輸至以太網IP核用戶端接口。
3 實驗結果
該硬件結構在Xilinx M525開發(fā)板上驗證實現(xiàn),F(xiàn)PGA芯片型號為Virtex-5 XC6VLX550T,其中芯片邏輯資源為207360,存儲資源為11.39 MB,寄存器資源為207 360,系統(tǒng)硬件在FPGA中資源占用如表1所示。
表1是系統(tǒng)設計通過ModelSim功能仿真后,在Xilinx ISE工具上綜合后的結果,綜合頻率高達245.562 MHz。在系統(tǒng)運行中,以太網控制器IP核時鐘工作頻率在125MHz,系統(tǒng)時鐘頻率為100MHz。通過仿真和FPGA下載驗證后,接口通訊時鐘周期統(tǒng)計如表2所示。
通過表2可以看出,以太網接口設計在完成兩種協(xié)議轉換和跨時鐘數(shù)據(jù)傳輸中,通訊響應時間短,且具有實時和穩(wěn)定傳輸,避免了異步時鐘在數(shù)據(jù)傳輸中的效率問題。
實驗測試,把FPGA開發(fā)板與PC機通過網線連接,如圖6所示。在PC機上編寫軟件程序,用于發(fā)送和接收硬件系統(tǒng)數(shù)據(jù),通過修改數(shù)據(jù)文件,測試不同深度的數(shù)據(jù)傳輸。比較發(fā)送數(shù)據(jù)和接收數(shù)據(jù)文件,判斷傳輸誤碼率。
實驗測試了不同文件大小的數(shù)據(jù)傳輸需要時間,統(tǒng)計結果如圖7所示。測試結果,發(fā)送與接收文件數(shù)據(jù),與預期結果一致。通訊時間與數(shù)據(jù)文件大小近似于線性關系,且傳輸時間短。以太網接口設計模塊為MPSoC承擔網絡數(shù)據(jù)通訊,提供了實時和高吞吐率的通訊速度。此外,以太網模塊可以用于系統(tǒng)單模塊集成調試傳輸源數(shù)據(jù),提高驗證效率。以太網接口模塊也可以應用于通訊網絡,實現(xiàn)系統(tǒng)數(shù)據(jù)與網絡通訊信息的交換。
4 結束語
研究了以太網在MPSoC中的數(shù)據(jù)通訊,解決了系統(tǒng)在網路通訊中的實時和高吞吐率的數(shù)據(jù)傳輸瓶頸。通過該接口與多核系統(tǒng)通訊,可以完成局域網到廣域網數(shù)據(jù)信息傳遞。