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