《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > NoC資源網(wǎng)絡(luò)接口設(shè)計(jì)
NoC資源網(wǎng)絡(luò)接口設(shè)計(jì)
2019年電子技術(shù)應(yīng)用第8期
許川佩,王紀(jì)鋒,牛軍浩
桂林電子科技大學(xué) 電子工程與自動(dòng)化學(xué)院 廣西自動(dòng)檢測(cè)技術(shù)與儀器重點(diǎn)實(shí)驗(yàn)室,,廣西 桂林541004
摘要: 資源網(wǎng)絡(luò)接口是片上網(wǎng)絡(luò)處理單元向路由節(jié)點(diǎn)發(fā)送數(shù)據(jù)的一個(gè)通信接口,,負(fù)責(zé)把處理單元發(fā)送的數(shù)據(jù)打包成路由節(jié)點(diǎn)所識(shí)別的數(shù)據(jù)。針對(duì)該接口高速傳輸要求,,采用請(qǐng)求,、應(yīng)答通信機(jī)制方式設(shè)計(jì)一個(gè)資源網(wǎng)絡(luò)接口。該接口內(nèi)各模塊間通信,,以及該接口與處理單元和路由節(jié)點(diǎn)間通信均采用異步通信,。接口內(nèi)的打包器采用奇偶格式設(shè)計(jì),,緩存模塊采用時(shí)分復(fù)用的思想以降低讀、寫過(guò)程延遲,。用Verilog HDL語(yǔ)言完成該接口設(shè)計(jì),,在ModelSim 10.01d平臺(tái)上驗(yàn)證,最終驗(yàn)證結(jié)果表明:設(shè)計(jì)的資源網(wǎng)絡(luò)接口能夠把處理單元發(fā)送來(lái)的數(shù)據(jù)打包成路由節(jié)點(diǎn)所識(shí)別的數(shù)據(jù),,且滿足高速率數(shù)據(jù)傳輸要求,。
中圖分類號(hào): TN402
文獻(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.
Design and verification of NoC resource network interface
Xu Chuanpei,,Wang Jifeng,Niu Junhao
Guangxi Key Laboratory of Automatic Detection Technology and Instruments,,School of Electronic Engineering and Automation,, Guilin University of Electronic Technology,Guilin 541004,,China
Abstract: The resource network interface is a communication interface that the on-chip network processing unit sends data to the router, and is responsible for packing the data sent by the processing unit into data identified by the routing node. For the high-speed transmission requirements of this interface, this paper uses a combinational logic circuit to design a resource network interface. The communication between the modules in the interface, and the communication between the interface and the processing unit and the routing node are asynchronous communication; the packager in the interface adopts a parity format design, and the cache module adopts the idea of time division multiplexing to reduce the delay of the read and write processes. The interface design is completed in Verilog HDL language and verified on the ModelSim 10.01d platform. The final verification results show that the designed resource network interface can package the data sent by the processing unit into the data identified by the routing node and meet the high-speed data transmission requirements.
Key words : packer,;time division multiplexing;asynchronous resource network interface,;Verilog HDL

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)都采用異步通信。

dzyj3-t1.gif

    資源網(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)本地端口。

dzyj3-t2.gif

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所示,。

dzyj3-t3.gif

    這兩種數(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ò)程以流水線方式傳輸,。

dzyj3-t4.gif

    數(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,。

dzyj3-t5.gif

    四種狀態(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í)間為:

     dzyj3-gs1-3.gif

    其單通道和雙通道讀、寫過(guò)程如圖6(a)和圖6(b)所示,。

dzyj3-t6.gif

    下面介紹整個(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所示,。

dzyj3-t7.gif

    當(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)。下面介紹一下讀,、寫控制器的工作流程,。

dzyj3-t8.gif

    寫操作步驟:當(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ò)程一致,為此不再敘述,。

dzyj3-t9.gif

2.2 緩存模塊功能驗(yàn)證與分析

    緩存模塊由基于二相單軌數(shù)據(jù)捆綁協(xié)議的循環(huán)FIFO和讀,、寫控制器組成,其數(shù)據(jù)讀,、寫過(guò)程都是在讀,、寫控制器控制下完成的。其緩存模塊內(nèi)讀,、寫控制器控制兩個(gè)FIFO讀,、寫過(guò)程仿真圖如圖10所示。

dzyj3-t10.gif

    從仿真圖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所示,。

dzyj3-t11.gif

    從圖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)

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。