《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的NoC驗(yàn)證平臺(tái)的構(gòu)建
基于FPGA的NoC驗(yàn)證平臺(tái)的構(gòu)建
電子設(shè)計(jì)工程
韓高飛 杜慧敏 蔣 林 韓俊剛
摘要: 在過(guò)去的幾年里,,一些研究機(jī)構(gòu)提出了對(duì)于NoC不同抽象層次的驗(yàn)證方法的研究,一般的NoC驗(yàn)證是基于軟件的仿真和建模,,如:用C,、C++、SvstemC進(jìn)行系統(tǒng)級(jí)建模仿真,,這樣驗(yàn)證很靈活,,但在仿真時(shí)間上卻開(kāi)銷很大。本文提出的基于FPGA的NoC驗(yàn)證平臺(tái)在仿真速度方面是一般基于HDL的軟件仿真的16 000倍,,而基于PC機(jī)編寫(xiě)的NoC軟件更增強(qiáng)了該平臺(tái)的靈活性和實(shí)用性,。
關(guān)鍵詞: FPGA NoC
Abstract:
Key words :

    半導(dǎo)體工藝技術(shù)進(jìn)入深亞微米時(shí)代后,基于總線系統(tǒng)芯片SoC(Svstem on Chip)的體系結(jié)構(gòu)在物理設(shè)計(jì),、通信帶寬以及功耗等方面無(wú)法滿足未來(lái)多IP體系發(fā)展的需求,。片上網(wǎng)絡(luò)NoC(Netwotlk on Chip)是一種新的系統(tǒng)芯片體系結(jié)構(gòu),其核心思想是將計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)移植到系統(tǒng)芯片設(shè)計(jì)中來(lái),,從體系結(jié)構(gòu)上徹底解決總線架構(gòu)帶來(lái)的問(wèn)題,。
    研究人員從拓?fù)浣Y(jié)構(gòu)、路由算法,、交換策略以及流控機(jī)制等多個(gè)方面對(duì)NoC進(jìn)行研究,,但是如何構(gòu)建NoC驗(yàn)證平臺(tái),快速得到NoC的性能也一直是NoC研究的重點(diǎn),。
    在過(guò)去的幾年里,,一些研究機(jī)構(gòu)提出了對(duì)于NoC不同抽象層次的驗(yàn)證方法的研究,一般的NoC驗(yàn)證是基于軟件的仿真和建模,,如:用C,、C++、SvstemC進(jìn)行系統(tǒng)級(jí)建模仿真,,這樣驗(yàn)證很靈活,,但在仿真時(shí)間上卻開(kāi)銷很大。本文提出的基于FPGA的NoC驗(yàn)證平臺(tái)在仿真速度方面是一般基于HDL的軟件仿真的16 000倍,,而基于PC機(jī)編寫(xiě)的NoC軟件更增強(qiáng)了該平臺(tái)的靈活性和實(shí)用性,。

1 驗(yàn)證平臺(tái)架構(gòu)
    該驗(yàn)證平臺(tái)采用模塊化設(shè)計(jì),可以很容易地對(duì)不同的NoC進(jìn)行功能驗(yàn)證和性能評(píng)估,。圖1給出了該驗(yàn)證平臺(tái)的基本架構(gòu),。


    它主要包括3個(gè)模塊:
    1)模擬IP核模塊 該模塊包含有數(shù)據(jù)流量產(chǎn)生器TG(Traffic Generator)模塊及數(shù)據(jù)流量接收器TR(Traffic Receiver)模塊,。TG模擬產(chǎn)生NoC網(wǎng)絡(luò)中各個(gè)IP節(jié)點(diǎn)可能產(chǎn)生的數(shù)據(jù)流量,TR用于收集NoC運(yùn)行過(guò)程中的各種信息,。TG/R作為一個(gè)IP節(jié)點(diǎn)和待測(cè)NoC中的每個(gè)交換節(jié)點(diǎn)相連接,。
    2)微處理器MPU及其接口MPI模塊 PC機(jī)通過(guò)MPU(FPGA中自帶的NiosⅡ軟核)和MPI實(shí)現(xiàn)對(duì)NoC各IP核中TG內(nèi)部各個(gè)配置寄存器的配置,并將TR中各個(gè)寄存器的內(nèi)容讀取到PC機(jī)中進(jìn)行處理,。本模塊和模擬IP核模塊構(gòu)成FPGA硬件平臺(tái),。
    3)NoC軟件模塊 完成對(duì)NoC的配置以及NoC系統(tǒng)的性能統(tǒng)計(jì)。PC機(jī)通過(guò)MPU與FPGA進(jìn)行通信,,實(shí)現(xiàn)對(duì)NoC的配置并從FPGA中得到數(shù)據(jù)并進(jìn)行后端處理,,以圖形的方式顯示給用戶,供用戶對(duì)所設(shè)計(jì)的NoC進(jìn)行評(píng)估,。同時(shí)PC機(jī)可以監(jiān)控NoC運(yùn)行的情況,。
    FPGA采用Ahera公司Stratix IV系列中的EP4SGX230KF40C2,該器件能夠提供高速的時(shí)鐘信號(hào)和大量的片內(nèi)資源,,并具有大量外圍接口電路可供使用,,這為基于FPGA的驗(yàn)證提供了強(qiáng)有力的保證。
1.1 流量產(chǎn)生器TG
    該平臺(tái)中的TG是一個(gè)可重用的軟核,,用戶可以通過(guò)為配置寄存器寫(xiě)入不同的配置信息使其產(chǎn)生不同的流量并注入NoC中,。TR用于接收數(shù)據(jù)信息,并統(tǒng)計(jì)發(fā)包數(shù)和收包數(shù),。
    記錄延時(shí)信息,,統(tǒng)計(jì)誤碼個(gè)數(shù)。圖2給出了TG,、TR和MPI以及NoC之間的數(shù)據(jù)流向,。


    在片上網(wǎng)絡(luò)中,流量的分布由以下2方面決定:1)流量的源/目的節(jié)點(diǎn)對(duì)的分布,,即空間位置上的通信概率分布,,稱為空間分布;2)流量注入網(wǎng)絡(luò)時(shí),,注入網(wǎng)絡(luò)的時(shí)間間隔在時(shí)間上呈現(xiàn)的概率分布,,稱為時(shí)間分布。為了使該平臺(tái)達(dá)到評(píng)價(jià)NoC性能的目的,,流量產(chǎn)生器TG將從空間分布和時(shí)間分布的不同,,模擬出不同的流量。
    空間分布主要包括:1)給定目標(biāo)地址:即配置TG產(chǎn)生發(fā)往確定目標(biāo)地址的數(shù)據(jù)包,;2)均勻分布:即配置TG產(chǎn)生均勻的發(fā)往網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)的數(shù)據(jù)包,,類似于網(wǎng)絡(luò)中的廣播現(xiàn)象;3)熱點(diǎn)分布:即配置TG產(chǎn)生發(fā)往網(wǎng)絡(luò)中一些特定的數(shù)據(jù)交換相對(duì)頻繁的節(jié)點(diǎn)的數(shù)據(jù)包,;4)局部分布:即配置TG產(chǎn)生發(fā)往網(wǎng)絡(luò)中某一局部的網(wǎng)絡(luò)距離較近的節(jié)點(diǎn)的數(shù)據(jù)包,;5)矩陣轉(zhuǎn)換地址分布:即按照矩陣X,,Y向量轉(zhuǎn)置的特點(diǎn)。配置TG產(chǎn)生發(fā)往與發(fā)送節(jié)點(diǎn)地址相對(duì)應(yīng)的節(jié)點(diǎn)的數(shù)據(jù)包,。
    時(shí)間分布主要包括:1)確定時(shí)間間隔:即配置TG每過(guò)一定數(shù)目的時(shí)鐘周期發(fā)送1個(gè)數(shù)據(jù)包,,直到停止發(fā)包為止;2)自相似流量模型:即ON-OFF流量模型,。即配置TG在一段時(shí)間內(nèi)發(fā)送數(shù)據(jù)包,,在一段時(shí)間內(nèi)停止發(fā)包,。此類流量模型就是模擬現(xiàn)實(shí)中在某一段時(shí)間突發(fā)很大的流量,,而在另外的時(shí)間段不產(chǎn)生流量;3)隨機(jī)分布:即配置TG在發(fā)送1個(gè)數(shù)據(jù)包之間的間隔是1個(gè)隨機(jī)時(shí)鐘周期數(shù),。
    空間分布和時(shí)間分布一般會(huì)交錯(cuò)配置使用,,那么組合之后可以產(chǎn)生十幾種不同的流量模型。另外,,數(shù)據(jù)包的格式可以是用戶指定的數(shù)據(jù),,也可以是偽隨機(jī)序列PRBS(Pseudo Random Binary Sequences)。數(shù)據(jù)包的大小亦可由用戶指定,,以數(shù)據(jù)片為單位,,最小的數(shù)據(jù)包包含4片,最大的數(shù)據(jù)包包含511片,。那么將流量模型和數(shù)據(jù)格式以及數(shù)據(jù)包的大小組合起來(lái),,就會(huì)產(chǎn)生種類更為豐富的流量模型。
    流量產(chǎn)生器TG內(nèi)部設(shè)有多個(gè)配置寄存器,,包括:發(fā)包使能寄存器,,發(fā)包間隔寄存器,發(fā)包地址和數(shù)據(jù)寄存器以及發(fā)包類型寄存器,。這些寄存器統(tǒng)一編址,,用戶可以通過(guò)配置這些寄存器控制TG工作。
1.2 流量接收器TR
    流量接收器TR用于收集收發(fā)包數(shù)目,,收發(fā)包的收據(jù)片,,并且統(tǒng)計(jì)誤碼和時(shí)延信息。為了達(dá)到此目的,,TR內(nèi)部設(shè)有多個(gè)只讀寄存器,,包括:發(fā)包個(gè)數(shù)寄存器.收包個(gè)數(shù)寄存器,發(fā)包數(shù)據(jù)寄存器,,收包數(shù)據(jù)寄存器,,中斷寄存器,誤碼計(jì)數(shù)器以及延時(shí)寄存器,,延時(shí)寄存器可以保存最近80個(gè)包的延時(shí)信息,。這些寄存器統(tǒng)一編址,,可以通過(guò)訪問(wèn)這些寄存器來(lái)讀取各種用于功能驗(yàn)證和性能評(píng)估的原始數(shù)據(jù)。
1.3 微處理器MPU及微處理器接口MPI
    微處理器MPU是在QuartusⅡ軟件的SOPC Builder工具中定制的,。它包括1個(gè)NiosⅡ處理器IP核和外圍的一些并行輸入輸出接口,。NiosIⅡ系列嵌入式處理器是一款通用的RISC結(jié)構(gòu)的CPU,使用32位指令集結(jié)構(gòu)(ISA)的二進(jìn)制代碼兼容,。將NiosⅡ處理器嵌入到FPGA硬件平臺(tái)中,,配合整個(gè)系統(tǒng)實(shí)現(xiàn)驗(yàn)證的功能。該平臺(tái)在所定制的NiosⅡ處理器的外圍還加入讀信號(hào),、寫(xiě)信號(hào),、地址信號(hào)、輸入數(shù)據(jù)信號(hào),、輸出數(shù)據(jù)信號(hào)和中斷信號(hào)等,,來(lái)完成PC機(jī)和FPGA硬件平臺(tái)之間的數(shù)據(jù)通信。
    NiosⅡ處理器外圍還包括一個(gè)鎖相環(huán)(PLL)軟核,,用于提供NoC電路中所需要的各種時(shí)鐘頻率,。微處理器MPU與TG/R通信時(shí),讀寫(xiě)控制時(shí)鐘作為突發(fā)時(shí)鐘,,頻率一般比較低,。而NoC中交換節(jié)點(diǎn)之間的數(shù)據(jù)交換會(huì)由于特定電路的不同,工作時(shí)鐘頻率會(huì)大小不同,,那么根據(jù)此工作頻率,,PLL產(chǎn)生相應(yīng)的時(shí)鐘信號(hào)配合其工作。MPU處理器僅占Stratix IVEP4SGX230KF40C2器件2 820個(gè)邏輯資源LE (Logic Element)(即1%),。因此使用非常高效,。
    該平臺(tái)還提供一個(gè)通用的微處理器接口MPI,用于保障MPU和TG/R之間的數(shù)據(jù)通信,,也為MPU和TG/R的重復(fù)使用提供了統(tǒng)一接口,。
1.4 NoC軟件
    NoC軟件主要完成對(duì)FPGA硬件平臺(tái)的初始化配置和信息收集及統(tǒng)計(jì)處理。根據(jù)功能劃分為2部分:
    1)NoC測(cè)試部分 其基本功能包括對(duì)FPGA硬件平臺(tái)的各個(gè)IP中TG內(nèi)部配置寄存器的初始化配置,,啟動(dòng)產(chǎn)生數(shù)據(jù)流并注入到NoC中,,同時(shí)對(duì)NoC的運(yùn)行情況進(jìn)行監(jiān)控,并實(shí)時(shí)收集與功能驗(yàn)證和性能評(píng)估相關(guān)的信息,。該軟件是在NiosⅡ的集成開(kāi)發(fā)環(huán)境(IDE)下用C語(yǔ)言設(shè)計(jì)開(kāi)發(fā)的,,在GNU的編譯器下編譯之后形成可以下載到MPU上直接運(yùn)行的二進(jìn)制文件。
    2)NoC性能統(tǒng)計(jì)處理部分 該部分的主要功能是借助于第三方繪圖工具按照NoC性能統(tǒng)計(jì)規(guī)則對(duì)收集到的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)處理,,并以圖表的方式直觀顯示NoC的基本功能和統(tǒng)計(jì)學(xué)性能,。
    以上兩部分都是在PC機(jī)上開(kāi)發(fā)完成的,可應(yīng)用于對(duì)不同NoC的測(cè)試與驗(yàn)證,。這為基于FPGA的硬件驗(yàn)證平臺(tái)增強(qiáng)了靈活性和實(shí)用性,。

2 仿真驗(yàn)證流程
    該驗(yàn)證平臺(tái)的驗(yàn)證流程包括FPGA硬件平臺(tái)的構(gòu)建和對(duì)該硬件平臺(tái)的初始化配置以及NoC運(yùn)行之后的信息收集和統(tǒng)計(jì)處理,。仿真驗(yàn)證流程如圖3所示。


    其流程簡(jiǎn)述如下:1)根據(jù)硬件架構(gòu)思想和模塊化設(shè)計(jì)策略將用HDL語(yǔ)言描述的NoC連接到FPGA硬件平臺(tái),;2)初始化配置FPGA硬件平臺(tái),,在PC機(jī)上編寫(xiě)NoC測(cè)試軟件,并通過(guò)Jtag線下載到MPU上運(yùn)行,,配置TG產(chǎn)生指定流量,,并注入到NoC中;3)當(dāng)FPGA平臺(tái)運(yùn)行時(shí),,即當(dāng)數(shù)據(jù)在NoC各個(gè)交換節(jié)點(diǎn)之間傳送或停止傳送時(shí),,用戶可以隨時(shí)改變配置以產(chǎn)生不同的流量,來(lái)測(cè)試NoC在不同流量下的性能,,并隨時(shí)監(jiān)聽(tīng)測(cè)試平臺(tái)的運(yùn)行情況,;4)將TR收集到的數(shù)據(jù)在NiosⅡIDE的控制臺(tái)顯示,,并保存數(shù)據(jù),。然后對(duì)收集到的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)處理,并以圖形的方式直觀顯示待測(cè)NoC的性能,。

3 NoC性能統(tǒng)計(jì)處理
    在驗(yàn)證平臺(tái)中,,采用PC機(jī)對(duì)NoC中運(yùn)行之后相關(guān)的數(shù)據(jù)進(jìn)行處理,并借助于第三方工具將處理結(jié)果以圖形方式顯示,,以直觀表示NoC的性能,。該平臺(tái)對(duì)于課題組設(shè)計(jì)的Mesh結(jié)構(gòu)的NoC進(jìn)行了功能驗(yàn)證和性能評(píng)估。
    主要處理包括平均網(wǎng)絡(luò)吞吐量和最近收到的80個(gè)數(shù)據(jù)包從發(fā)送端到接收端的網(wǎng)絡(luò)平均延時(shí)以及誤碼統(tǒng)計(jì),,下面簡(jiǎn)單介紹性能評(píng)估的方法:
    1)網(wǎng)絡(luò)平均吞吐量 對(duì)于TR收集到的收包個(gè)數(shù)通過(guò)PC讀取之后,,繪制性能曲線圖。以歸一化仿真時(shí)間為基準(zhǔn),,以相同時(shí)間段中收集的數(shù)據(jù)包數(shù)目作為網(wǎng)絡(luò)總吞吐量,。
   
式中,總運(yùn)行時(shí)間xlO%表示取歸一化時(shí)延的l/l0,。
    圖4給出了在不同流量模型下,,每包4個(gè)數(shù)據(jù)片時(shí),所設(shè)計(jì)NoC的網(wǎng)絡(luò)平均吞吐量,。


    2)平均網(wǎng)絡(luò)延遲 對(duì)于TR收集到的最近80個(gè)數(shù)據(jù)包從發(fā)送端到接收端的延遲信息,,以歸一化仿真時(shí)間為基準(zhǔn),計(jì)算平均網(wǎng)絡(luò)延遲:
   
式中,,P是發(fā)包總數(shù),,每個(gè)包的延遲為L(zhǎng)i,那么Latency就是一段時(shí)間內(nèi)的平均網(wǎng)絡(luò)延遲,。
    圖5給出了在不同流量模型下,,在相同仿真時(shí)間段中接收到的數(shù)據(jù)包的平均網(wǎng)絡(luò)延遲,。圖6給出了在相同的流量模型-均勻地址,自相似流量模型下,,在相同仿真時(shí)間段中,,對(duì)于每包分片不同時(shí)的平均網(wǎng)絡(luò)延遲。


    3)誤碼統(tǒng)計(jì) 表l給出了誤碼個(gè)數(shù)統(tǒng)計(jì)表,,這里所設(shè)計(jì)的NoC是有保障服務(wù),,因此,在NoC運(yùn)行過(guò)程中并不產(chǎn)生誤碼,。驗(yàn)證結(jié)果與實(shí)際設(shè)計(jì)相一致,。



4 結(jié)束語(yǔ)
    本文提出了一種基于FPGA的NoC驗(yàn)證平臺(tái)。詳細(xì)討論了該驗(yàn)證平臺(tái)中FPGA硬件平臺(tái)和NoC軟件的基本功能,,并闡述了TG/R,,MPU,MPI以及NoC軟件的可重用性等特點(diǎn),。通過(guò)一個(gè)實(shí)例仿真驗(yàn)證的結(jié)果說(shuō)明了該驗(yàn)證平臺(tái)的基本功能和優(yōu)越性,。目前正在開(kāi)發(fā)不同參數(shù)化的流量模型,以便將該平臺(tái)用于對(duì)各種不同NoC的驗(yàn)證,。

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