歡迎來(lái)到溫州瑞川電子有限公司!
摘要:為了得到比傳統(tǒng)片上網(wǎng)絡(luò)的網(wǎng)絡(luò)資源接口(NI)更高的數(shù)據(jù)傳輸效率和更加穩(wěn)定的數(shù)據(jù)傳輸效果,提出了一種新的高效網(wǎng)絡(luò)接口的設(shè)計(jì)方法,并采用Verilog HDL語(yǔ)言對(duì)相關(guān)模塊進(jìn)行編程,實(shí)現(xiàn)了高效傳輸功能,同時(shí)又滿足核內(nèi)路由的設(shè)計(jì)要求。最終通過(guò)仿真軟件Xilinx ISE Design Suite 12.3和ModelSim SE 6.2b得到了滿足設(shè)計(jì)要求的仿真結(jié)果。
關(guān)鍵詞:片上網(wǎng)絡(luò);網(wǎng)絡(luò)資源接口;核內(nèi)路由;Verilog HDL
O 引言
隨著納米時(shí)代的到來(lái),集成電路工藝不斷的發(fā)展,特別是VISI設(shè)計(jì)技術(shù)的進(jìn)步,系統(tǒng)級(jí)芯片的設(shè)計(jì)迎來(lái)了巨大的挑戰(zhàn),而這個(gè)挑戰(zhàn)的的關(guān)鍵就是怎么樣實(shí)現(xiàn)更高的通信效率。這個(gè)問(wèn)題的出現(xiàn)也預(yù)示著多核技術(shù)時(shí)代的到臨。為了應(yīng)對(duì)這個(gè)挑戰(zhàn),人們提出了片上網(wǎng)絡(luò)(Network On Chip,NoC)的概念。片上網(wǎng)絡(luò)(NoC)移植了網(wǎng)絡(luò)通信的方式,進(jìn)而來(lái)解決多核時(shí)代的IP核互聯(lián)通信的問(wèn)題。
由于片上網(wǎng)絡(luò)(NoC)具有優(yōu)秀的可擴(kuò)展性和相對(duì)較好的功耗效率,目前已經(jīng)被大多數(shù)人認(rèn)為是解決當(dāng)前甚至未來(lái)芯片設(shè)計(jì)中關(guān)于通信問(wèn)題的最重要的技術(shù)之一。
1 NoC簡(jiǎn)介
圖1為傳統(tǒng)2D-MESH結(jié)構(gòu)的NoC示意圖。圖中明顯可以看出片上網(wǎng)絡(luò)(NoC)主要由4部分組成:資源節(jié)點(diǎn)(IP核)、路由節(jié)點(diǎn)、網(wǎng)絡(luò)接口NI(Network Interface)和全局鏈路。其中網(wǎng)絡(luò)接口NI就是連接IP核與通信網(wǎng)絡(luò)的橋梁,同時(shí)網(wǎng)絡(luò)接口NI的設(shè)計(jì)也是片上網(wǎng)絡(luò)(NoC)設(shè)計(jì)技術(shù)中重要的一環(huán)。
網(wǎng)絡(luò)接口NI使NoC實(shí)現(xiàn)了計(jì)算資源與通信網(wǎng)絡(luò)部分的分離,允許IP核和網(wǎng)絡(luò)通信結(jié)構(gòu)分別獨(dú)立進(jìn)行設(shè)計(jì),使計(jì)算資源相對(duì)網(wǎng)絡(luò)更加透明,從而實(shí)現(xiàn)不同資源間的互聯(lián),提高了設(shè)計(jì)的重用性。網(wǎng)絡(luò)接口NI主要面向地址信號(hào),數(shù)據(jù)的打包、解包、編碼,同步等方面的問(wèn)題。文獻(xiàn)提出的是一種既滿足擔(dān)保服務(wù)又滿足最大努力服務(wù)的網(wǎng)絡(luò)接口NI,但是此網(wǎng)絡(luò)接口NI主要應(yīng)用于AEthereal系統(tǒng)中。文獻(xiàn)介紹了一種以O(shè)CP從模塊存在的網(wǎng)絡(luò)接口,應(yīng)用于XpIPes系統(tǒng)。
2 通用網(wǎng)絡(luò)接口NI的結(jié)構(gòu)及模塊功能
網(wǎng)絡(luò)接口的作用主要基于網(wǎng)絡(luò)中關(guān)于信息包信息的傳輸,并且將其轉(zhuǎn)換成資源模塊可用的形式。它的主要功能包括3個(gè)方面:提取關(guān)于IP核與網(wǎng)絡(luò)之間的通信協(xié)議;支持任何IP核與網(wǎng)絡(luò)接口連接;對(duì)數(shù)據(jù)進(jìn)行打包和解包。
當(dāng)數(shù)據(jù)在NoC中傳輸時(shí),網(wǎng)絡(luò)接口將主IP核中的數(shù)據(jù)進(jìn)行打包,并進(jìn)行校驗(yàn),然后將其傳輸?shù)铰酚晒?jié)點(diǎn)進(jìn)入網(wǎng)絡(luò),最后由目的IP核的網(wǎng)絡(luò)接口進(jìn)行解包,校驗(yàn)進(jìn)入到目的IP核中。圖2是通用網(wǎng)絡(luò)接口的結(jié)構(gòu)模塊圖,如圖2所示其主要由通用核接口、數(shù)據(jù)打包單元、數(shù)據(jù)解包單元、存儲(chǔ)單元和異步FIFO構(gòu)成。數(shù)據(jù)打包單元主要將來(lái)自IP核的信息進(jìn)行打包,其首先將信息轉(zhuǎn)換成流控單元(flit),然后在網(wǎng)絡(luò)中進(jìn)行傳輸,其主要由包頭編碼單元,數(shù)據(jù)處理單元和FIFO控制單元構(gòu)成。而解包單元主要是將數(shù)據(jù)包進(jìn)行轉(zhuǎn)換,滿足目的IP核所需要的數(shù)據(jù)形式。數(shù)據(jù)打包單元和數(shù)據(jù)解包單元共享網(wǎng)絡(luò)接口中的存儲(chǔ)單元,這樣做主要是易于鏈接不同模塊。
3 高效網(wǎng)絡(luò)接口的設(shè)計(jì)
3.1 總體結(jié)構(gòu)的設(shè)計(jì)與分析
本文主要是設(shè)計(jì)一種高效的網(wǎng)絡(luò)接口使其滿足數(shù)據(jù)的快速傳輸,同時(shí)能承受高的通信壓力,使其也可用于核內(nèi)路由的數(shù)據(jù)傳輸。核內(nèi)路由及將傳統(tǒng)的路由節(jié)點(diǎn)嵌入到IP核中,與IP核共享存儲(chǔ)單元,益于IP核與網(wǎng)絡(luò)通信部分?jǐn)?shù)據(jù)傳輸加速,以便于加快整個(gè)NoC的網(wǎng)絡(luò)通信速率。據(jù)文獻(xiàn)可知,核內(nèi)路由也將是NoC發(fā)展的重要方向之一。如圖3所示,本文設(shè)計(jì)的網(wǎng)絡(luò)接口主要包含數(shù)據(jù)接收,數(shù)據(jù)發(fā)送,緩沖區(qū)模塊和寄存器控制組4部分。
當(dāng)原始數(shù)據(jù)從IP核傳輸?shù)奖揪W(wǎng)絡(luò)接口,首先由數(shù)據(jù)接收模塊將原始數(shù)據(jù)打包,并將其分為多個(gè)片(flit)。通常數(shù)據(jù)包被分為:Head flit,Datel flit,Date2 flit,Tailflit等4部分,而本網(wǎng)絡(luò)接口將其壓縮為Head flit,Datel flit,Date2 and control flit三部分,主要是將Tailflit壓縮到傳統(tǒng)Data2 flit中,因?yàn)門ail flit中只含有一個(gè)完成控制信號(hào),所以將其合并到最后一個(gè)數(shù)據(jù)片上,通過(guò)寄存器控制模塊控制發(fā)送,通過(guò)網(wǎng)絡(luò)到達(dá)目的網(wǎng)絡(luò)接口,由其將接受到的數(shù)據(jù)包進(jìn)行解包,滿足目的IP核的需求,同時(shí)傳輸?shù)侥康腎P核。由于本網(wǎng)絡(luò)接口也可以嵌入到IP核中,因此可以提前將Head flit發(fā)送出去,使Head flit的發(fā)送與數(shù)據(jù)打包并行處理。這樣就加速了數(shù)據(jù)的傳輸速率。
3.2 數(shù)據(jù)接收模塊的設(shè)計(jì)
此模塊主要是完成接收路由節(jié)點(diǎn)發(fā)出來(lái)的數(shù)據(jù)包以及本地IP核發(fā)出的數(shù)據(jù)包。其結(jié)構(gòu)如圖4所示,由數(shù)據(jù)接收邏輯控制模塊和數(shù)據(jù)接收狀態(tài)機(jī)模塊。
此模塊主要工作流程為:接收控制邏輯模塊→產(chǎn)生緩存地址和有效信號(hào)→狀態(tài)機(jī)模塊→產(chǎn)生接收數(shù)據(jù)的狀態(tài)。
當(dāng)系統(tǒng)復(fù)位,整個(gè)狀態(tài)機(jī)處于空狀態(tài)(idle),當(dāng)同時(shí)接收到有效的數(shù)據(jù)信號(hào)和信道控制信號(hào)時(shí),進(jìn)入接收數(shù)據(jù)長(zhǎng)狀態(tài)(r_length)。隨著clk上升沿的到達(dá),順序進(jìn)入接收數(shù)據(jù)目的地址的狀態(tài)(r_desti_addr),接收源地址狀態(tài)(r_source_addr),接收數(shù)據(jù)狀態(tài)(r_receive)。數(shù)據(jù)接收完成后,置數(shù)據(jù)傳輸完成信號(hào)無(wú)效后,狀態(tài)機(jī)恢復(fù)初始狀態(tài)(idle)。
3.3 數(shù)據(jù)發(fā)送模塊的設(shè)計(jì)
此模塊主要是將從路由節(jié)點(diǎn)得到的數(shù)據(jù)發(fā)送給IP核,或者是將從IP核得到的數(shù)據(jù)傳輸?shù)酵ㄐ啪W(wǎng)絡(luò)中去。設(shè)計(jì)思路同數(shù)據(jù)接收模塊相似。結(jié)構(gòu)圖如圖6所示分為2部分:數(shù)據(jù)發(fā)送控制邏輯模塊和數(shù)據(jù)發(fā)送狀態(tài)機(jī)模塊。其狀態(tài)機(jī)的轉(zhuǎn)移圖如圖7所示。簡(jiǎn)述:idle→(有效數(shù)據(jù)發(fā)送信號(hào))ask(信道請(qǐng)求信號(hào))→(響應(yīng)信道請(qǐng)求)buf_en→(clk上沿)t_length→t_date→(數(shù)據(jù)信號(hào)完成響應(yīng))idle。
3.4 寄存器控制組模塊的設(shè)計(jì)
此模塊主要分為:狀態(tài)寄存器,邏輯控制寄存器,接收數(shù)據(jù)長(zhǎng)寄存器,接收數(shù)據(jù)源地址寄存器。4個(gè)寄存器都為8位寄存器。滿足了各節(jié)點(diǎn)對(duì)網(wǎng)絡(luò)接口的控制。表1為狀態(tài)寄存器。
當(dāng)前網(wǎng)絡(luò)接口的工作狀態(tài)有表中寄存器的低兩位所代表?!?”代表處于r_date,“1”代表處于s_date。
4 系統(tǒng)仿真與驗(yàn)證結(jié)果
本文設(shè)計(jì)的網(wǎng)絡(luò)接口主要是使用Xilinx ISE Design suite 12.3和ModelSim SE 6.2b仿真軟件進(jìn)行仿真和驗(yàn)證。圖8是網(wǎng)絡(luò)接口中數(shù)據(jù)接收模塊功能仿真圖,圖9是數(shù)據(jù)發(fā)送模塊功能仿真圖。實(shí)驗(yàn)主要是通過(guò)主時(shí)鐘控制數(shù)據(jù)的發(fā)送,采用50 MHz的時(shí)鐘,每2個(gè)時(shí)鐘發(fā)送一個(gè)IP核數(shù)據(jù),發(fā)送完成的到flag標(biāo)識(shí)。從結(jié)果可以看出此設(shè)計(jì)便于加快數(shù)據(jù)在網(wǎng)絡(luò)中的傳輸效率。實(shí)驗(yàn)中源IP核輸出數(shù)據(jù)為32位,通過(guò)NI1把數(shù)據(jù)分為高16位和低16位輸出,到達(dá)目的NI2,通過(guò)NI2把數(shù)據(jù)合并為32位,最終輸入到目的IP核內(nèi)。結(jié)果顯示,數(shù)據(jù)傳輸過(guò)程數(shù)據(jù)保持了較強(qiáng)的穩(wěn)定性,同時(shí)發(fā)送與接收都準(zhǔn)確的做出了應(yīng)答,達(dá)到了設(shè)計(jì)要求。
5 結(jié)語(yǔ)
本文設(shè)計(jì)的網(wǎng)絡(luò)接口主要是針對(duì)對(duì)數(shù)據(jù)傳輸速率要求較高,對(duì)傳輸效果穩(wěn)定性要求較高的NoC體系。通過(guò)實(shí)驗(yàn)基本實(shí)現(xiàn)了設(shè)計(jì)要求,同時(shí)此網(wǎng)絡(luò)接口具有較強(qiáng)的實(shí)用性,對(duì)與今后核內(nèi)路由的研究具有重要的意義。