半導體工藝技術(shù)進(jìn)入深亞微米時(shí)代后,基于總線(xiàn)系統芯片SoC(Svstem on Chip)的體系結構在物理設計、通信帶寬以及功耗等方面無(wú)法滿(mǎn)足未來(lái)多IP體系發(fā)展的需求。片上網(wǎng)絡(luò )NoC(Netwotlk on Chip)是一種新的系統芯片體系結構,其核心思想是將計算機網(wǎng)絡(luò )技術(shù)移植到系統芯片設計中來(lái),從體系結構上徹底解決總線(xiàn)架構帶來(lái)的問(wèn)題。 研究人員從拓撲結構、路由算法、交換策略以及流控機制等多個(gè)方面對NoC進(jìn)行研究,但是如何構建NoC驗證平臺,快速得到NoC的性能也一直是NoC研究的重點(diǎn)。 在過(guò)去的幾年里,一些研究機構提出了對于NoC不同抽象層次的驗證方法的研究,一般的NoC驗證是基于軟件的仿真和建模,如:用C、C++、SvstemC進(jìn)行系統級建模仿真,這樣驗證很靈活,但在仿真時(shí)間上卻開(kāi)銷(xiāo)很大。本文提出的基于FPGA的NoC驗證平臺在仿真速度方面是一般基于HDL的軟件仿真的16 000倍,而基于PC機編寫(xiě)的NoC軟件更增強了該平臺的靈活性和實(shí)用性。 1 驗證平臺架構 該驗證平臺采用模塊化設計,可以很容易地對不同的NoC進(jìn)行功能驗證和性能評估。圖1給出了該驗證平臺的基本架構。 它主要包括3個(gè)模塊: 1)模擬IP核模塊 該模塊包含有數據流量產(chǎn)生器TG(Traffic Generator)模塊及數據流量接收器TR(Traffic Receiver)模塊。TG模擬產(chǎn)生NoC網(wǎng)絡(luò )中各個(gè)IP節點(diǎn)可能產(chǎn)生的數據流量,TR用于收集NoC運行過(guò)程中的各種信息。TG/R作為一個(gè)IP節點(diǎn)和待測NoC中的每個(gè)交換節點(diǎn)相連接。 2)微處理器MPU及其接口MPI模塊 PC機通過(guò)MPU(FPGA中自帶的NiosⅡ軟核)和MPI實(shí)現對NoC各IP核中TG內部各個(gè)配置寄存器的配置,并將TR中各個(gè)寄存器的內容讀取到PC機中進(jìn)行處理。本模塊和模擬IP核模塊構成FPGA硬件平臺。 3)NoC軟件模塊 完成對NoC的配置以及NoC系統的性能統計。PC機通過(guò)MPU與FPGA進(jìn)行通信,實(shí)現對NoC的配置并從FPGA中得到數據并進(jìn)行后端處理,以圖形的方式顯示給用戶(hù),供用戶(hù)對所設計的NoC進(jìn)行評估。同時(shí)PC機可以監控NoC運行的情況。 FPGA采用Ahera公司Stratix IV系列中的EP4SGX230KF40C2,該器件能夠提供高速的時(shí)鐘信號和大量的片內資源,并具有大量外圍接口電路可供使用,這為基于FPGA的驗證提供了強有力的保證。 1.1 流量產(chǎn)生器TG 該平臺中的TG是一個(gè)可重用的軟核,用戶(hù)可以通過(guò)為配置寄存器寫(xiě)入不同的配置信息使其產(chǎn)生不同的流量并注入NoC中。TR用于接收數據信息,并統計發(fā)包數和收包數。 記錄延時(shí)信息,統計誤碼個(gè)數。圖2給出了TG、TR和MPI以及NoC之間的數據流向。 在片上網(wǎng)絡(luò )中,流量的分布由以下2方面決定:1)流量的源/目的節點(diǎn)對的分布,即空間位置上的通信概率分布,稱(chēng)為空間分布;2)流量注入網(wǎng)絡(luò )時(shí),注入網(wǎng)絡(luò )的時(shí)間間隔在時(shí)間上呈現的概率分布,稱(chēng)為時(shí)間分布。為了使該平臺達到評價(jià)NoC性能的目的,流量產(chǎn)生器TG將從空間分布和時(shí)間分布的不同,模擬出不同的流量。 空間分布主要包括:1)給定目標地址:即配置TG產(chǎn)生發(fā)往確定目標地址的數據包;2)均勻分布:即配置TG產(chǎn)生均勻的發(fā)往網(wǎng)絡(luò )中各個(gè)節點(diǎn)的數據包,類(lèi)似于網(wǎng)絡(luò )中的廣播現象;3)熱點(diǎn)分布:即配置TG產(chǎn)生發(fā)往網(wǎng)絡(luò )中一些特定的數據交換相對頻繁的節點(diǎn)的數據包;4)局部分布:即配置TG產(chǎn)生發(fā)往網(wǎng)絡(luò )中某一局部的網(wǎng)絡(luò )距離較近的節點(diǎn)的數據包;5)矩陣轉換地址分布:即按照矩陣X,Y向量轉置的特點(diǎn)。配置TG產(chǎn)生發(fā)往與發(fā)送節點(diǎn)地址相對應的節點(diǎn)的數據包。 時(shí)間分布主要包括:1)確定時(shí)間間隔:即配置TG每過(guò)一定數目的時(shí)鐘周期發(fā)送1個(gè)數據包,直到停止發(fā)包為止;2)自相似流量模型:即ON-OFF流量模型。即配置TG在一段時(shí)間內發(fā)送數據包,在一段時(shí)間內停止發(fā)包。此類(lèi)流量模型就是模擬現實(shí)中在某一段時(shí)間突發(fā)很大的流量,而在另外的時(shí)間段不產(chǎn)生流量;3)隨機分布:即配置TG在發(fā)送1個(gè)數據包之間的間隔是1個(gè)隨機時(shí)鐘周期數。 空間分布和時(shí)間分布一般會(huì )交錯配置使用,那么組合之后可以產(chǎn)生十幾種不同的流量模型。另外,數據包的格式可以是用戶(hù)指定的數據,也可以是偽隨機序列PRBS(Pseudo Random Binary Sequences)。數據包的大小亦可由用戶(hù)指定,以數據片為單位,最小的數據包包含4片,最大的數據包包含511片。那么將流量模型和數據格式以及數據包的大小組合起來(lái),就會(huì )產(chǎn)生種類(lèi)更為豐富的流量模型。 流量產(chǎn)生器TG內部設有多個(gè)配置寄存器,包括:發(fā)包使能寄存器,發(fā)包間隔寄存器,發(fā)包地址和數據寄存器以及發(fā)包類(lèi)型寄存器。這些寄存器統一編址,用戶(hù)可以通過(guò)配置這些寄存器控制TG工作。 1.2 流量接收器TR 流量接收器TR用于收集收發(fā)包數目,收發(fā)包的收據片,并且統計誤碼和時(shí)延信息。為了達到此目的,TR內部設有多個(gè)只讀寄存器,包括:發(fā)包個(gè)數寄存器.收包個(gè)數寄存器,發(fā)包數據寄存器,收包數據寄存器,中斷寄存器,誤碼計數器以及延時(shí)寄存器,延時(shí)寄存器可以保存最近80個(gè)包的延時(shí)信息。這些寄存器統一編址,可以通過(guò)訪(fǎng)問(wèn)這些寄存器來(lái)讀取各種用于功能驗證和性能評估的原始數據。 1.3 微處理器MPU及微處理器接口MPI 微處理器MPU是在QuartusⅡ軟件的SOPC Builder工具中定制的。它包括1個(gè)NiosⅡ處理器IP核和外圍的一些并行輸入輸出接口。NiosIⅡ系列嵌入式處理器是一款通用的RISC結構的CPU,使用32位指令集結構(ISA)的二進(jìn)制代碼兼容。將NiosⅡ處理器嵌入到FPGA硬件平臺中,配合整個(gè)系統實(shí)現驗證的功能。該平臺在所定制的NiosⅡ處理器的外圍還加入讀信號、寫(xiě)信號、地址信號、輸入數據信號、輸出數據信號和中斷信號等,來(lái)完成PC機和FPGA硬件平臺之間的數據通信。 NiosⅡ處理器外圍還包括一個(gè)鎖相環(huán)(PLL)軟核,用于提供NoC電路中所需要的各種時(shí)鐘頻率。微處理器MPU與TG/R通信時(shí),讀寫(xiě)控制時(shí)鐘作為突發(fā)時(shí)鐘,頻率一般比較低。而NoC中交換節點(diǎn)之間的數據交換會(huì )由于特定電路的不同,工作時(shí)鐘頻率會(huì )大小不同,那么根據此工作頻率,PLL產(chǎn)生相應的時(shí)鐘信號配合其工作。MPU處理器僅占Stratix IVEP4SGX230KF40C2器件2 820個(gè)邏輯資源LE (Logic Element)(即1%)。因此使用非常高效。 該平臺還提供一個(gè)通用的微處理器接口MPI,用于保障MPU和TG/R之間的數據通信,也為MPU和TG/R的重復使用提供了統一接口。 1.4 NoC軟件 NoC軟件主要完成對FPGA硬件平臺的初始化配置和信息收集及統計處理。根據功能劃分為2部分: 1)NoC測試部分 其基本功能包括對FPGA硬件平臺的各個(gè)IP中TG內部配置寄存器的初始化配置,啟動(dòng)產(chǎn)生數據流并注入到NoC中,同時(shí)對NoC的運行情況進(jìn)行監控,并實(shí)時(shí)收集與功能驗證和性能評估相關(guān)的信息。該軟件是在NiosⅡ的集成開(kāi)發(fā)環(huán)境(IDE)下用C語(yǔ)言設計開(kāi)發(fā)的,在GNU的編譯器下編譯之后形成可以下載到MPU上直接運行的二進(jìn)制文件。 2)NoC性能統計處理部分 該部分的主要功能是借助于第三方繪圖工具按照NoC性能統計規則對收集到的數據進(jìn)行統計處理,并以圖表的方式直觀(guān)顯示NoC的基本功能和統計學(xué)性能。 以上兩部分都是在PC機上開(kāi)發(fā)完成的,可應用于對不同NoC的測試與驗證。這為基于FPGA的硬件驗證平臺增強了靈活性和實(shí)用性。 2 仿真驗證流程 該驗證平臺的驗證流程包括FPGA硬件平臺的構建和對該硬件平臺的初始化配置以及NoC運行之后的信息收集和統計處理。仿真驗證流程如圖3所示。 其流程簡(jiǎn)述如下:1)根據硬件架構思想和模塊化設計策略將用HDL語(yǔ)言描述的NoC連接到FPGA硬件平臺;2)初始化配置FPGA硬件平臺,在PC機上編寫(xiě)NoC測試軟件,并通過(guò)Jtag線(xiàn)下載到MPU上運行,配置TG產(chǎn)生指定流量,并注入到NoC中;3)當FPGA平臺運行時(shí),即當數據在NoC各個(gè)交換節點(diǎn)之間傳送或停止傳送時(shí),用戶(hù)可以隨時(shí)改變配置以產(chǎn)生不同的流量,來(lái)測試NoC在不同流量下的性能,并隨時(shí)監聽(tīng)測試平臺的運行情況;4)將TR收集到的數據在NiosⅡIDE的控制臺顯示,并保存數據。然后對收集到的數據進(jìn)行統計處理,并以圖形的方式直觀(guān)顯示待測NoC的性能。 3 NoC性能統計處理 在驗證平臺中,采用PC機對NoC中運行之后相關(guān)的數據進(jìn)行處理,并借助于第三方工具將處理結果以圖形方式顯示,以直觀(guān)表示NoC的性能。該平臺對于課題組設計的Mesh結構的NoC進(jìn)行了功能驗證和性能評估。 主要處理包括平均網(wǎng)絡(luò )吞吐量和最近收到的80個(gè)數據包從發(fā)送端到接收端的網(wǎng)絡(luò )平均延時(shí)以及誤碼統計,下面簡(jiǎn)單介紹性能評估的方法: 1)網(wǎng)絡(luò )平均吞吐量 對于TR收集到的收包個(gè)數通過(guò)PC讀取之后,繪制性能曲線(xiàn)圖。以歸一化仿真時(shí)間為基準,以相同時(shí)間段中收集的數據包數目作為網(wǎng)絡(luò )總吞吐量。 式中,總運行時(shí)間xlO%表示取歸一化時(shí)延的l/l0。 圖4給出了在不同流量模型下,每包4個(gè)數據片時(shí),所設計NoC的網(wǎng)絡(luò )平均吞吐量。 2)平均網(wǎng)絡(luò )延遲 對于TR收集到的最近80個(gè)數據包從發(fā)送端到接收端的延遲信息,以歸一化仿真時(shí)間為基準,計算平均網(wǎng)絡(luò )延遲: 式中,P是發(fā)包總數,每個(gè)包的延遲為L(cháng)i,那么Latency就是一段時(shí)間內的平均網(wǎng)絡(luò )延遲。 圖5給出了在不同流量模型下,在相同仿真時(shí)間段中接收到的數據包的平均網(wǎng)絡(luò )延遲。圖6給出了在相同的流量模型-均勻地址,自相似流量模型下,在相同仿真時(shí)間段中,對于每包分片不同時(shí)的平均網(wǎng)絡(luò )延遲。 3)誤碼統計 表l給出了誤碼個(gè)數統計表,這里所設計的NoC是有保障服務(wù),因此,在NoC運行過(guò)程中并不產(chǎn)生誤碼。驗證結果與實(shí)際設計相一致。 4 結束語(yǔ) 本文提出了一種基于FPGA的NoC驗證平臺。詳細討論了該驗證平臺中FPGA硬件平臺和NoC軟件的基本功能,并闡述了TG/R,MPU,MPI以及NoC軟件的可重用性等特點(diǎn)。通過(guò)一個(gè)實(shí)例仿真驗證的結果說(shuō)明了該驗證平臺的基本功能和優(yōu)越性。目前正在開(kāi)發(fā)不同參數化的流量模型,以便將該平臺用于對各種不同NoC的驗證。 |