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