文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.190548
中文引用格式: 許川佩,王紀(jì)鋒,,牛軍浩. NoC資源網(wǎng)絡(luò)接口設(shè)計(jì)[J].電子技術(shù)應(yīng)用,,2019,45(8):118-123.
英文引用格式: Xu Chuanpei,,Wang Jifeng,,Niu Junhao. Design and verification of NoC resource network interface[J]. Application of Electronic Technique,2019,,45(8):118-123.
0 引言
片上網(wǎng)絡(luò)(Network-on-Chip,,NoC)具有可重用性、可擴(kuò)展性和并行性等特點(diǎn),,是替代以總線通信方式的片上系統(tǒng)(System-on-Chip,,SoC)的一種可行方案[1-2]。NoC由路由節(jié)點(diǎn),、處理單元(Processing Elements,,PE)、路由節(jié)點(diǎn)和PE間的接口以及路由節(jié)點(diǎn)間鏈路通道組成[3],。路由節(jié)點(diǎn)的功能用于將數(shù)據(jù)(包)從一個(gè)節(jié)點(diǎn)傳送到另一個(gè)節(jié)點(diǎn)[4],,資源網(wǎng)絡(luò)接口(Resource Network Interfaces,RNI)是PE向路由節(jié)點(diǎn)傳輸數(shù)據(jù)的一個(gè)通信接口,,其基本功能是根據(jù)標(biāo)準(zhǔn)通信協(xié)議(如AXI,、OCP或異步握手)完成PE向路由節(jié)點(diǎn)的數(shù)據(jù)傳輸[5]。
近年來(lái),有很多路由節(jié)點(diǎn)與PE間接口設(shè)計(jì)研究成果相繼發(fā)表,。文獻(xiàn)[4]提出并實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)接口架構(gòu),,但該接口的延遲較高。文獻(xiàn)[6]中提出了一種符合AHB(高級(jí)高性能總線)的2D Mesh 結(jié)構(gòu)NoC網(wǎng)絡(luò)接口,,該接口通過(guò)兩階段流水線通信方式來(lái)減少PE和NoC路由節(jié)點(diǎn)之間通信延遲,。文獻(xiàn)[7]提出了使用標(biāo)準(zhǔn)PE和AXI總線組包的技術(shù)來(lái)減少延遲。但是,,上述所有接口設(shè)計(jì)都是基于時(shí)序電路實(shí)現(xiàn)的,,數(shù)據(jù)傳輸都是在時(shí)鐘控制下完成的,很少在接口各模塊間采用請(qǐng)求,、應(yīng)答通信方式設(shè)計(jì),,且上述接口設(shè)計(jì)研究都是在減少接口與處理單元和路由節(jié)點(diǎn)間通信延遲,很少研究如何減少資源網(wǎng)絡(luò)接口內(nèi)緩存模塊讀寫過(guò)程的延遲,。為此,,本文采用請(qǐng)求、應(yīng)答通信機(jī)制方式來(lái)設(shè)計(jì)資源網(wǎng)絡(luò)接口,;根據(jù)時(shí)分復(fù)用思想可以提高多通道利用率[8],,采用時(shí)分復(fù)用的思想設(shè)計(jì)雙通道緩存模塊作為本文資源網(wǎng)絡(luò)接口緩存模塊。
1 資源網(wǎng)絡(luò)接口設(shè)計(jì)
資源網(wǎng)絡(luò)接口是PE向路由節(jié)點(diǎn)傳送數(shù)據(jù)的物理通道[9],,作用是把處理單元發(fā)送來(lái)的數(shù)據(jù)轉(zhuǎn)化成NoC路由節(jié)點(diǎn)所識(shí)別的數(shù)據(jù),。其處理單元、資源網(wǎng)絡(luò)接口,、路由節(jié)點(diǎn)之間的連接方式如圖1所示,。其中資源網(wǎng)絡(luò)接口與處理單元和路由節(jié)點(diǎn)都采用異步通信。
資源網(wǎng)絡(luò)接口結(jié)構(gòu)如圖2所示,,由打包器和緩存模塊組成,,其中緩存模塊由緩沖區(qū)讀、寫控制器和兩個(gè)循環(huán)FIFO組成,。數(shù)據(jù)處理流程分為兩部分:數(shù)據(jù)封裝和數(shù)據(jù)轉(zhuǎn)發(fā),。這兩個(gè)部分處理過(guò)程如下:
數(shù)據(jù)封裝:當(dāng)打包模塊接收到PE請(qǐng)求時(shí),根據(jù)PE發(fā)來(lái)數(shù)據(jù)信息封裝成相應(yīng)類型微片,,然后把封裝好的微片存儲(chǔ)到緩存區(qū)內(nèi)。數(shù)據(jù)轉(zhuǎn)發(fā):緩存區(qū)內(nèi)數(shù)據(jù)不為空時(shí),,向路由節(jié)點(diǎn)本地端口發(fā)出請(qǐng)求,,等到應(yīng)答之后把數(shù)據(jù)轉(zhuǎn)發(fā)路由節(jié)點(diǎn)本地端口。
1.1 數(shù)據(jù)包格式
目前NoC內(nèi)的路由節(jié)點(diǎn)間的數(shù)據(jù)交換主要采用蟲洞交換技術(shù)[10],。該交換方式將數(shù)據(jù)包劃分成很小的微片,,并把這些微片分成三種不同的類型:頭微片、數(shù)據(jù)微片和尾微片,。傳輸時(shí)頭微片在NoC內(nèi)開辟一條路徑,,數(shù)據(jù)微片以流水線方式向前傳輸,,以尾微片作為數(shù)據(jù)包傳輸結(jié)束標(biāo)志。這樣數(shù)據(jù)包中微片就會(huì)存到多個(gè)路由節(jié)點(diǎn)內(nèi),,但如果NoC內(nèi)某個(gè)路由節(jié)點(diǎn)發(fā)生阻塞時(shí),,這時(shí)又有其他數(shù)據(jù)包微片經(jīng)過(guò)此路由節(jié)點(diǎn),并且與當(dāng)前數(shù)據(jù)包微片傳輸方向相同,,這時(shí)路由節(jié)點(diǎn)就無(wú)法區(qū)別當(dāng)前微片和前一個(gè)微片是否來(lái)自同一個(gè)數(shù)據(jù)包,,造成微片混亂現(xiàn)象[11]。
為防止這種情況發(fā)生,,本文將數(shù)據(jù)包分為兩種格式:奇數(shù)包和偶數(shù)包,。打包次數(shù)為奇數(shù)是奇數(shù)包;打包次數(shù)為偶數(shù)是偶數(shù)包,。兩種數(shù)據(jù)包微片格式一致,,不同的是微片中編碼號(hào)編碼方式不同。其數(shù)據(jù)包格式及微片格式如圖3所示,。
這兩種數(shù)據(jù)包微片編碼方式如下,。當(dāng)打包數(shù)據(jù)包為偶數(shù)包時(shí),其微片編碼方式為頭微片和尾微片兩位碼號(hào)設(shè)置為00,,數(shù)據(jù)微片兩位碼號(hào)設(shè)置為01,;打包為奇數(shù)包時(shí),頭微片和尾微片的編兩位碼號(hào)設(shè)置為11,。數(shù)據(jù)微片兩位碼號(hào)設(shè)置為10,。將數(shù)據(jù)包的源地址、目的地址信息添加到頭微片,、數(shù)據(jù)微片和尾微片中來(lái),,用來(lái)區(qū)分?jǐn)?shù)據(jù)包源地址不同、目的地址相同的微片,。采用奇偶打包格式,,來(lái)區(qū)分?jǐn)?shù)據(jù)包源地址、目的地址相同但不是同一個(gè)數(shù)據(jù)包的微片,。
1.2 打包器設(shè)計(jì)
打包模塊負(fù)責(zé)將PE發(fā)送來(lái)的數(shù)據(jù)重新拆包,,并重新打包成NoC內(nèi)路由節(jié)點(diǎn)所識(shí)別的數(shù)據(jù)包格式數(shù)據(jù),然后把打包好的數(shù)據(jù)轉(zhuǎn)發(fā)給路由節(jié)點(diǎn),。其整個(gè)結(jié)構(gòu)如圖4所示,,由二相單軌數(shù)據(jù)捆綁異步單元和Packetizer模塊組成。其中Packetizer由Packet Control,、Head Info,、24位數(shù)據(jù)搬運(yùn)器、32位合成器以及Flit組合器組成。二相單軌數(shù)據(jù)捆綁異步單元是負(fù)責(zé)與PE和該接口內(nèi)的緩存模塊通信的異步握手單元,,與兩個(gè)模塊通信時(shí)采用數(shù)據(jù)捆綁二相握手協(xié)議(異步通道中請(qǐng)求,、應(yīng)答信號(hào)每翻轉(zhuǎn)一次完成一次通信事件)[12];Packetizer是打包器的核心模塊,,負(fù)責(zé)數(shù)據(jù)包內(nèi)各個(gè)微片封裝,。由于本文設(shè)計(jì)的資源網(wǎng)絡(luò)接口向路由節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)時(shí),是以微片為基本單位進(jìn)行數(shù)據(jù)交換,,因此在數(shù)據(jù)打包時(shí),,不需將數(shù)據(jù)封裝成整個(gè)數(shù)據(jù)包,只需將數(shù)據(jù)封裝成微片,。傳輸時(shí)以頭微片作為一個(gè)新數(shù)據(jù)包的開始,,尾微片作為一個(gè)數(shù)據(jù)包結(jié)束,整個(gè)過(guò)程以流水線方式傳輸,。
數(shù)據(jù)包整個(gè)打包流程如下:當(dāng)收到PE發(fā)送來(lái)的新數(shù)據(jù)時(shí),,二相單軌數(shù)據(jù)捆綁異步單元先將該數(shù)據(jù)鎖存該單元內(nèi)數(shù)據(jù)通道中,并向Packetizer發(fā)送請(qǐng)求,。當(dāng)Packetizer模塊收到二相單軌數(shù)據(jù)捆綁異步單元請(qǐng)求(req_from_ip信號(hào)發(fā)生翻轉(zhuǎn)) 時(shí),,內(nèi)部的打包控制器Packet Control判斷當(dāng)前Status信號(hào)狀態(tài)以及打包奇偶格式后,將鎖存二相單軌數(shù)據(jù)捆綁異步單元中數(shù)據(jù)通道內(nèi)的數(shù)據(jù),,通過(guò)Flit組成器封裝成相應(yīng)微片,,同時(shí)向二相單軌數(shù)據(jù)捆綁異步單元做出應(yīng)答(ack_to_ip信號(hào)發(fā)生翻轉(zhuǎn)),并將封裝好的微片存儲(chǔ)到緩沖區(qū)內(nèi),。其微片封裝類型是根據(jù)當(dāng)前Status信號(hào)的狀態(tài)決定的,。其Status信號(hào)的狀態(tài)轉(zhuǎn)換與微片類型封裝之間的關(guān)系如圖5所示。其中Status信號(hào)由2 bit數(shù)據(jù)組成,,00表示狀態(tài)S0,,01表示狀態(tài)S1,10表示S2,,11表示狀態(tài)S3,。
四種狀態(tài)工作詳細(xì)步驟為:
(1)S0狀態(tài):初始化Packetizer模塊,此時(shí)打包器處于空閑狀態(tài),。監(jiān)督二相單軌數(shù)據(jù)捆綁異步單元是否有新數(shù)據(jù)到來(lái)(req_from_ip信號(hào)翻轉(zhuǎn)),,如果沒(méi)有,就一直在S0狀態(tài)循環(huán),,否則進(jìn)入S1狀態(tài),。
(2)S1狀態(tài):當(dāng)收到二相單軌數(shù)據(jù)捆綁異步單元請(qǐng)求(req_from_ip信號(hào)發(fā)生翻轉(zhuǎn))時(shí),不會(huì)立即做出響應(yīng),。而是Packetizer模塊內(nèi)Head Info單元先將發(fā)送來(lái)的32 bit數(shù)據(jù)中的頭部信息提取出來(lái),并存儲(chǔ)到數(shù)據(jù)寄存器內(nèi)(其中頭部信息包括數(shù)據(jù)包的長(zhǎng)度、數(shù)據(jù)包傳輸?shù)哪康牡刂泛驮吹刂?,?shù)據(jù)包長(zhǎng)度為4位,,目的地址和源地址為8位);然后Packet Control控制器判斷當(dāng)前打包次數(shù)是奇數(shù)還是偶數(shù)后,,將Head Info內(nèi)的12 bit頭部信息傳送給32位數(shù)據(jù)合成器,。接收到Head Info信息后的32位數(shù)據(jù)合成器會(huì)立即判斷當(dāng)前打包次數(shù)奇偶性,并把剩余的20位存儲(chǔ)地址填充數(shù)據(jù)包相關(guān)類型信息,。最后把合成好的32位數(shù)據(jù)轉(zhuǎn)發(fā)給flit合成器,,封裝成34 bit頭微片,并向二相單軌數(shù)據(jù)捆綁異步單元做出應(yīng)答(ack_to_ip信號(hào)發(fā)生翻轉(zhuǎn)),,進(jìn)入S2狀態(tài),。此時(shí)標(biāo)志一個(gè)新的數(shù)據(jù)包打包開始。
(3)S2狀態(tài):檢測(cè)到有32 bit新數(shù)據(jù)到來(lái)時(shí),,先判斷從頭微片到當(dāng)前所封裝微片數(shù)是否小于數(shù)據(jù)包的長(zhǎng)度,。如果是,進(jìn)行數(shù)據(jù)微片封裝,。其封裝步驟:先把發(fā)送來(lái)的32 bit數(shù)據(jù)存儲(chǔ)到24位數(shù)據(jù)搬運(yùn)器中寄存器內(nèi),;然后Head Info將存儲(chǔ)的8 bit目的地址、源地址信息轉(zhuǎn)發(fā)給32位合成器,,之后24位數(shù)據(jù)搬運(yùn)器將存儲(chǔ)在寄存器內(nèi)的數(shù)據(jù)前24 bit數(shù)據(jù)填充到32位合成器的后24位,;最后由flit合成器封裝成34 bit數(shù)據(jù)微片。如果當(dāng)前所封裝微片數(shù)等于數(shù)據(jù)包的長(zhǎng)度,,轉(zhuǎn)移S3狀態(tài),。
(4)S3狀態(tài):把PE發(fā)送來(lái)的32 bit數(shù)據(jù)封裝成34 bit尾微片,并把Head Info內(nèi)存儲(chǔ)的頭部信息清空,,進(jìn)入S0狀態(tài),,此時(shí)標(biāo)志一個(gè)數(shù)據(jù)包打包結(jié)束。其中34 bit尾微片的封裝步驟與S2狀態(tài)34 bit數(shù)據(jù)微片一致,,不再贅述,。
1.3 緩存模塊設(shè)計(jì)
當(dāng)打包器把封裝好的微片轉(zhuǎn)發(fā)給NoC路由節(jié)點(diǎn)時(shí),如果NoC路由節(jié)點(diǎn)沒(méi)有給予及時(shí)處理,,此時(shí)會(huì)大大降低數(shù)據(jù)打包的效率,,為此需在打包器和NoC路由節(jié)點(diǎn)間增加一個(gè)緩存模塊,目前大多數(shù)緩存器都是使用單個(gè)緩存區(qū)來(lái)存儲(chǔ)數(shù)據(jù)的,,但是這種方式無(wú)法在同一時(shí)刻進(jìn)行讀,、寫,產(chǎn)生過(guò)大的延遲,。為減小緩存模塊的延遲,,本文采用時(shí)分復(fù)用的思想設(shè)計(jì)一個(gè)讀,、寫并行的雙通道緩存模塊。為了更好證明采用時(shí)分復(fù)用思想可以降低緩存模塊延遲,,設(shè)每次寫數(shù)據(jù)的時(shí)間為Twr,,讀數(shù)據(jù)延遲為Trd,數(shù)據(jù)包的長(zhǎng)度為2L,。則單通道緩存和采用時(shí)分復(fù)用后緩存完成一個(gè)數(shù)據(jù)包讀寫時(shí)間可由以下公式計(jì)算[13],。
單通道完成一個(gè)數(shù)據(jù)包讀寫時(shí)間為:
其單通道和雙通道讀、寫過(guò)程如圖6(a)和圖6(b)所示,。
下面介紹整個(gè)緩存模塊設(shè)計(jì)流程,。
緩存模塊整個(gè)結(jié)構(gòu)由圖2所示,由緩沖模塊讀,、寫控制器以及兩個(gè)FIFO組成,。傳統(tǒng)的FIFO都是靠時(shí)鐘完成FIFO數(shù)據(jù)讀寫的。為了提高數(shù)據(jù)的讀寫速率,,本文采用數(shù)據(jù)捆綁二相握手協(xié)議(異步通道中請(qǐng)求,、應(yīng)答信號(hào)每翻轉(zhuǎn)一次完成一次通信事件)[12]設(shè)計(jì)一個(gè)循環(huán)FIFO進(jìn)行數(shù)據(jù)讀寫,數(shù)據(jù)寬度為34位,,為了節(jié)約資源,,深度設(shè)計(jì)為4,整個(gè)設(shè)計(jì)框架如圖7所示,。
當(dāng)req_in信號(hào)發(fā)生反轉(zhuǎn)時(shí)(和ackout信號(hào)不一樣時(shí),,有請(qǐng)求發(fā)生時(shí)),對(duì)應(yīng)的writerpointersi會(huì)被拉高,,當(dāng)判斷regi為空(fulli和emptyi電平不同)時(shí),,ackout就會(huì)做出應(yīng)答,將數(shù)據(jù)寫入到regi里,,fulli信號(hào)發(fā)生反轉(zhuǎn),。同理當(dāng)readpointersi讀到regi不為空(fulli和emptyi電平不同)時(shí),此時(shí)reqout電平會(huì)發(fā)生變化,,同時(shí)后面的二相單軌異步單元向相鄰接結(jié)點(diǎn)發(fā)出請(qǐng)求信號(hào),,當(dāng)接收到ackin應(yīng)答時(shí),emptyi信號(hào)發(fā)生反轉(zhuǎn),,然后去讀下一個(gè)reg的值,,以此類推。下面介紹讀,、寫控制器設(shè)計(jì),。
緩沖區(qū)讀寫整個(gè)過(guò)程都是由讀、寫控制器配合完成的,。其緩沖區(qū)讀,、寫控制器內(nèi)部結(jié)構(gòu)如圖8所示,。其中讀、寫控制器分別由二相單軌數(shù)據(jù)捆綁單元,、仲裁器以及狀態(tài)控制器組成,。在讀、寫控制器內(nèi),,仲裁器都是采用輪詢算法對(duì)兩個(gè)FIFO進(jìn)行讀、寫操作,,狀態(tài)控制器控制兩個(gè)FIFO的讀,、寫狀態(tài)。下面介紹一下讀,、寫控制器的工作流程,。
寫操作步驟:當(dāng)收到打包器發(fā)送來(lái)的請(qǐng)求時(shí)(req_from_packet信號(hào)翻轉(zhuǎn)),二相單軌數(shù)據(jù)捆綁異步單元立即把打包器傳送來(lái)的微片鎖存到該模塊內(nèi)的數(shù)據(jù)通道中,,緊接著仲裁器判斷當(dāng)前FIFOA和FIFOB是否全滿(Read_statusA和Read_statusA全為1),。如果是,停止數(shù)據(jù)寫操作,;否則仲裁器根據(jù)輪詢算法將數(shù)據(jù)寫入到相應(yīng)的FIFO內(nèi),,然后再判斷當(dāng)前FIFO是否滿,如果是,,將該FIFO設(shè)置為讀狀態(tài)(Read_status設(shè)置為1),。其中寫控制器中仲裁機(jī)制采用輪詢的算法,每收到一個(gè)請(qǐng)求信號(hào)時(shí),,仲裁器內(nèi)仲裁指針移動(dòng)一次,,這樣保證了每個(gè)FIFO寫的頻率相同。
讀操作步驟:當(dāng)仲裁器接收到FIFOA或FIFOB的請(qǐng)求(reqC和reqD信號(hào)翻轉(zhuǎn))時(shí),,判斷當(dāng)前兩個(gè)FIFO是否全空(Write_statusA和Write_statusB全為1),。如果是,停止讀操作,;否則讀控制器內(nèi)的仲裁器根據(jù)輪詢算法將相應(yīng)FIFO內(nèi)的數(shù)據(jù)發(fā)送給NoC路由節(jié)點(diǎn),,然后判斷該FIFO是否為空,如果是,,則將該FIFO設(shè)置為寫狀態(tài)(Write_status設(shè)置為1),。其中讀控制器內(nèi)仲裁器也是每讀一次數(shù)據(jù),仲裁器內(nèi)仲裁指針移動(dòng)一次,,這樣保證了緩存區(qū)中每個(gè)數(shù)據(jù)讀,、寫順序一致。
該緩存模塊根據(jù)FIFO中Write_status和Read_status信號(hào)判斷當(dāng)前FIFO的讀,、寫狀態(tài),,保證讀,、寫過(guò)程同時(shí)進(jìn)行。用時(shí)分復(fù)用的思想降低數(shù)據(jù)在緩沖區(qū)寫過(guò)程中的延遲,,減少緩沖區(qū)FIFO在讀的過(guò)程出現(xiàn)饑餓現(xiàn)象(一直沒(méi)有數(shù)據(jù)可讀),。
2 功能仿真與驗(yàn)證
本文采用Verilog HDL硬件語(yǔ)言完成資源接口內(nèi)各個(gè)模塊設(shè)設(shè)計(jì),并在ModeSim10.d EDA平臺(tái)上驗(yàn)證其功能,。首先對(duì)打包器打包過(guò)程進(jìn)行驗(yàn)證,,然后再對(duì)緩存模塊讀、寫過(guò)程進(jìn)行驗(yàn)證,。
2.1 打包器功能驗(yàn)證與分析
打包器負(fù)責(zé)把PE發(fā)送來(lái)的數(shù)據(jù)打包成NoC內(nèi)路由節(jié)點(diǎn)所識(shí)別的數(shù)據(jù)包,,其中驗(yàn)證分為三部分:(1)頭微片封裝過(guò)程,數(shù)據(jù)包打包開始標(biāo)志,;(2)數(shù)據(jù)微片封裝過(guò)程,;(3)尾微片封裝過(guò)程,數(shù)據(jù)打包結(jié)束的標(biāo)志,。其整個(gè)打包器的整個(gè)打包過(guò)程仿真圖如圖9所示,。當(dāng)status的狀態(tài)由S0變?yōu)镾1(status的值由00變?yōu)?1)時(shí),表示數(shù)據(jù)包打包開始,,當(dāng)datain的值由0變?yōu)?00000000000000000000000011110001時(shí),,headinfo的值由0為010111110001。其中headinfo的值的后4位0101表示數(shù)據(jù)包的長(zhǎng)度為9,,前8位11110001(數(shù)據(jù)包的源地址和目的地址值)與data_in值的前8位一致,,表明頭部信息提取正確。當(dāng)data_out的值由0變?yōu)?001111001111001000001011111000100時(shí),,表明頭微片封裝完畢,。其數(shù)據(jù)封裝如圖8被標(biāo)注的封裝好微片數(shù)據(jù)微片所示:該微片的前12位與headinfo的值一樣,后24位是datain的第一個(gè)值的后8位和第二個(gè)值的前16位組合,,表明數(shù)據(jù)微片封裝正確,。尾微片封裝過(guò)程與數(shù)據(jù)微片封裝過(guò)程一致,為此不再敘述,。
2.2 緩存模塊功能驗(yàn)證與分析
緩存模塊由基于二相單軌數(shù)據(jù)捆綁協(xié)議的循環(huán)FIFO和讀,、寫控制器組成,其數(shù)據(jù)讀,、寫過(guò)程都是在讀,、寫控制器控制下完成的。其緩存模塊內(nèi)讀,、寫控制器控制兩個(gè)FIFO讀,、寫過(guò)程仿真圖如圖10所示。
從仿真圖10(a)可以看出:當(dāng)打包器發(fā)送來(lái)的數(shù)據(jù)為0x000003c6,、0x000003c7,、0x000003c8,、0x000003c5時(shí),寫進(jìn)FIFOA的數(shù)據(jù)為0x000003c7和0x000003c5,,寫進(jìn)FIFOB的數(shù)據(jù)為0x000003c6和0x000003c8,,表明寫控制器是采用輪詢算法把數(shù)據(jù)寫進(jìn)兩個(gè)FIFO內(nèi)。從仿真圖10(b)可以看出:FIFOA輸出的數(shù)據(jù)為0x000003c7和0x000003c5,,F(xiàn)IFOB輸出的數(shù)據(jù)為0x000003c8和0x000003c6時(shí),,讀控制器輸出的數(shù)據(jù)為0x000003c6、0x000003c7,、0x000003c8,、0x000003c5,表明緩存模塊的數(shù)據(jù)可以被正確讀出,。
2.3 資源網(wǎng)絡(luò)接口傳輸延遲分析
對(duì)設(shè)計(jì)的資源網(wǎng)絡(luò)接口傳輸延遲驗(yàn)證,本文設(shè)置兩種情況:RNI-1循環(huán)FIFO和RNI-2循環(huán)FIFO,。RNI-1循環(huán)FIFO是緩存模塊為單個(gè)FIFO的資源網(wǎng)絡(luò)接口,;RNI-2循環(huán)FIFO是緩存模塊本采用時(shí)分復(fù)用讀、寫的資源網(wǎng)絡(luò)接口,。在ModelSim 10.01d EDA仿真時(shí)間為納秒環(huán)境下,,連續(xù)向這兩種接口注入6個(gè)位寬為32的數(shù)據(jù)。其仿真圖如圖11所示,。
從圖11仿真結(jié)果可以看出:RNI-1循環(huán)FIFO完成一個(gè)數(shù)據(jù)包的讀,、寫的時(shí)間為80 ns,表明單個(gè)數(shù)據(jù)包傳輸延遲為80 ns,;單個(gè)數(shù)據(jù)包的存儲(chǔ)時(shí)間為75 ns,,則單個(gè)微片傳輸延遲為5 ns;RNI-1循環(huán)FIFO完成一個(gè)數(shù)據(jù)包延遲為62 ns,,即單個(gè)數(shù)據(jù)包傳輸延遲為62 ns,;單個(gè)數(shù)據(jù)包的存儲(chǔ)時(shí)間為59 ns,則單個(gè)微片傳輸延遲為3 ns,。RNI-2循環(huán)FIFO的單個(gè)微片延遲相對(duì)RNI-1循環(huán)FIFO減少2 ns,,包延遲減少18 ns。
3 結(jié)論
本文采用奇偶交替打包格式,,來(lái)區(qū)分源地址和目的地址相同但不是來(lái)自同一數(shù)據(jù)包的微片,。將源地址和目的地址信息加入數(shù)據(jù)微片和尾微片中,來(lái)區(qū)分源地址和目的地址都不相同的微片,。采用時(shí)分復(fù)用思想來(lái)降低緩存模塊的讀,、寫過(guò)程中的延遲。最后仿真結(jié)果表明:本文設(shè)計(jì)的資源網(wǎng)絡(luò)接口能把PE發(fā)送來(lái)的數(shù)據(jù)打包成路由節(jié)點(diǎn)所識(shí)別的數(shù)據(jù)包,,并且單個(gè)微片傳輸延遲為3個(gè)時(shí)間單位,,滿足高速率傳輸要求,。
參考文獻(xiàn)
[1] SWAMINATHAN K,LAKSHMINARAYANAN G,,LANG F.Design of a low power network interface for Network on chip[C].International Conference on Communications,,Management and Telecommunications,2013.
[2] 陳松濤,,徐金甫,,劉航天.基于認(rèn)證加密的NoC安全防護(hù)研究[J].電子技術(shù)應(yīng)用,2016,,42(7):50-52,,56.
[3] 談俊燕,華迪,Virginie Fresse,Frederic Rousseau.用于油畫鑒別的自適應(yīng)MPSoC中NoC仿真平臺(tái)研究[J].電子技術(shù)應(yīng)用,,2016,,42(12):76-80.
[4] MASOUD D,LILJEBERG P,,PLOSILA J.Memoryefficient on-chip network with adaptive interfaces[C].Computer-Aided Design of Integrated Circuits and Systems,,2012:146-159.
[5] CUONG N V,CAO B C,,NAM P N.Design of a low latency network interface using dual buffer for network on chip[C].International Conference on Communications,,Management and Telecommunications,2016.
[6] ATTIA B,,CHOUCHENE W,,ZITOUNI A,et al.Design and implementation of low latency network interface for network on chip[C].2010 5th Internation Design and Test Workshop,,2010:37-42.
[7] CHOUCHENE W,,ATTIA B,ZITOUNI A,,et al. A low power network interface for network on chip[C].Multi-Conference on Systems,,Signals & Devices,2011:37-42.
[8] 黃世鋒,,陳章友,,張?zhí)m,等.多通道雷達(dá)數(shù)字接收機(jī)數(shù)字下變頻設(shè)計(jì)[J].電子技術(shù)應(yīng)用,,2016,,42(6):46-48,55.
[9] 王勝,,屈凌翔.基于NoC的網(wǎng)絡(luò)接口設(shè)計(jì)[J].電子與封裝,,2017,17(9):23-27.
[10] 李貞妮,李晶皎,,王愛俠,,等.片上網(wǎng)絡(luò)跨時(shí)鐘域的高速數(shù)據(jù)通信接口設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2018,,18(3):13-18.
[11] 許川佩,,劉標(biāo).基于高速數(shù)據(jù)采集的NoC路由節(jié)點(diǎn)設(shè)計(jì)[J].微電子學(xué)與計(jì)算機(jī),2017,,34(11):140-144.
[12] 何安平,,劉曉慶,陳虹.基于約束數(shù)據(jù)捆綁兩相握手協(xié)議的8位異步Booth乘法器設(shè)計(jì)[J].電子學(xué)報(bào),,2018,,46(4):961-968.
[13] 張恒,張迎春.一種動(dòng)態(tài)時(shí)分復(fù)用方法及FPGA實(shí)現(xiàn)[J].無(wú)線電工程,,2015,,45(6):85-87,95.
作者信息:
許川佩,,王紀(jì)鋒,,牛軍浩
(桂林電子科技大學(xué) 電子工程與自動(dòng)化學(xué)院 廣西自動(dòng)檢測(cè)技術(shù)與儀器重點(diǎn)實(shí)驗(yàn)室,廣西 桂林541004)