摘" 要: RapidIO是一種高性能嵌入式系統(tǒng)互聯(lián)技術(shù)。FPGA的SRIO控制器實(shí)現(xiàn)了RapidIO二代協(xié)議,在工程中經(jīng)常需要得到其實(shí)際帶寬性能以確定其是否滿足應(yīng)用需求。采用FPGA的嵌入式軟核,配合FPGA內(nèi)部硬件電路可搭建軟硬件協(xié)同SOPC測試系統(tǒng)。該系統(tǒng)既具有硬件可裁剪、可定制、擴(kuò)展性強(qiáng)的特點(diǎn),又具備軟件靈活性的特點(diǎn)。此系統(tǒng)在硬件層面設(shè)計(jì)了周期采樣單元、周期配置接口、鎖存接口、上傳接口;軟件層面具備采樣參數(shù)配置、采樣控制、采樣數(shù)據(jù)分析、結(jié)果呈現(xiàn)功能。通過軟硬件代碼的編寫和驗(yàn)證,表明此方法可實(shí)時(shí)監(jiān)測接口的帶寬及抖動(dòng)性能指標(biāo)。
關(guān)鍵詞: RapidIO; 嵌入式軟核; SOPC; 帶寬測試; 抖動(dòng); AXI?Stream接口
中圖分類號(hào): TN709?34; TP391.4" " " " " " " " " " 文獻(xiàn)標(biāo)識(shí)碼: A" " " " " " " " " "文章編號(hào): 1004?373X(2025)01?0163?05
RapidIO interface bandwidth testing method based on cooperation of"software and hardware
LIU Shutao1, ZHANG Zongsen2, WEI Xuan3, ZHANG Bufang2
(1. Hebei Branch, China Communications System Co., Ltd., Shijiazhuang 050081, China;
2. The 54th Research Institute of CETC, Shijiazhuang 050081, China; 3. Xidian University, Xi’an 710071, China)
Abstract: RapidIO is a high?performance embedded system interconnection technology. The RapidIO second?generation protocol has been implemented on the SRIO controller of FPGA, and its actual bandwidth performance often needs to be obtained in engineering to determine whether it meets application requirements. Using FPGA′s embedded soft core and combined with FPGA′s internal hardware circuits, the SOPC testing system which is the combination of software and hardware can be built. This system has the characteristics of hardware, such as tailorability, customization, and strong scalability, as well as the characteristic of flexibility of the software. In terms of the system hardware, a periodic sampling unit, periodic configuration interface, latch interface, and upload interface have been designed. In terms of the system software, the system has the functions of sampling parameter configuration, sampling control, sampling data analysis, and data presentation. By the complication and verification of software and hardware code, it is shown that the proposed method can monitor the performance indicators of bandwidth and jitter of the interface in real time.
Keywords: RapidIO; embedded soft core; SOPC; bandwidth testing; jitter; AXI?Stream interface
0" 引" 言
RapidIO協(xié)議是針對高性能嵌入式系統(tǒng)而設(shè)計(jì)的交換互聯(lián)協(xié)議,具有高帶寬、低延時(shí)、高效率、高可靠性等優(yōu)點(diǎn)。RapidIO二代協(xié)議物理層采用8B/10B編解碼,物理層還有包協(xié)議開銷。在無線基站領(lǐng)域中,RapidIO符合基站模塊化、高帶寬、任意拓?fù)洹⒏邔?shí)時(shí)性等要求;在雷達(dá)和信號(hào)處理領(lǐng)域中,RapidIO協(xié)議適合該領(lǐng)域?qū)τ跀?shù)據(jù)傳輸相互交織、運(yùn)算負(fù)荷動(dòng)態(tài)分配、高可靠性、任意拓?fù)涞纫蟆?/p>
在高速運(yùn)行中會(huì)受到各種電磁輻射,這些干擾源包括其他設(shè)備間的干擾、自然界的干擾等,這些干擾可能會(huì)使設(shè)備的工作性能受到影響或者遭到破壞。在一些性能及其穩(wěn)定性要求高的系統(tǒng)中,需要實(shí)時(shí)監(jiān)測系統(tǒng)的性能指標(biāo),系統(tǒng)帶寬是高速接口很重要的性能指標(biāo)。
在包含高速接口的數(shù)字系統(tǒng)中,F(xiàn)PGA是很常見的數(shù)據(jù)源器件。在FPGA中測試接口帶寬可通過硬件測試、軟件測試、軟硬協(xié)同測試幾種方式實(shí)現(xiàn)。硬件測試的優(yōu)點(diǎn)是測試時(shí)間粒度高,因此實(shí)時(shí)性好,但缺點(diǎn)是靈活性差;軟件測試的優(yōu)點(diǎn)是靈活性好、易調(diào)試,但缺點(diǎn)是實(shí)時(shí)性差,并且測試時(shí)間粒度低;軟硬協(xié)同的方法結(jié)合了硬件測試時(shí)間粒度高和軟件靈活的優(yōu)點(diǎn),優(yōu)勢互補(bǔ),場景適應(yīng)性高。
FPGA中有針對RapidIO接口的IP,本文以此IP為基礎(chǔ),基于其FPGA專有的軟核處理器,搭建了軟硬件協(xié)同的高速接口帶寬測試系統(tǒng),為需要進(jìn)行高速接口性能測試的系統(tǒng)應(yīng)用奠定了堅(jiān)實(shí)的基礎(chǔ)。
1" 系統(tǒng)組成
采用FPGA的RapidIO控制器IP核,測試高速接口協(xié)議層帶寬需要知道固定時(shí)間內(nèi)包發(fā)出或接收的數(shù)量[1]。用戶接口層數(shù)據(jù)流采用AXI?Stream接口,接收接口的包尾LAST標(biāo)志可作為計(jì)數(shù)指示信號(hào)。根據(jù)發(fā)送包尾指示信號(hào)可計(jì)算此接口的出口帶寬。若要測試高速接口入口帶寬,改為接收包尾計(jì)數(shù)信號(hào)即可,不再贅述。軟硬協(xié)同系統(tǒng)包括FPGA處理器硬件模塊、可配置硬件包計(jì)數(shù)量采樣與緩存模塊、軟件控制與處理模塊、RapidIO數(shù)據(jù)源壓力產(chǎn)生模塊,分別對各模塊的詳細(xì)設(shè)計(jì)予以介紹。
1.1" FPGA處理器硬件模塊
FPGA設(shè)計(jì)中處理器硬件層面采用FPGA專有的嵌入式處理器軟核,搭建相關(guān)外設(shè)接口APB總線、定時(shí)器、串口、中斷等[2]。FPGA專有的軟核處理器是可以嵌入在FPGA中的RISC處理器軟核,具有運(yùn)行速度快、資源占用少、配置性強(qiáng)等優(yōu)點(diǎn)[3],在FPGA中軟核處理器主頻可以運(yùn)行在200 MHz,在通信系統(tǒng)中應(yīng)用廣泛。該處理器可以通過APB總線與外部寄存器交互,可控制并監(jiān)測Verilog搭建的硬件采樣以及緩存模塊、收發(fā)包配置;定時(shí)器是以處理器內(nèi)部總線時(shí)鐘為基準(zhǔn)而精確控制時(shí)間的工具,處理器可以通過定時(shí)器精確得到當(dāng)前時(shí)刻、程序運(yùn)行時(shí)間等指標(biāo);通過串口可以很好地進(jìn)行人機(jī)交互,配合軟件中的指令解析模塊可以方便地給處理器下達(dá)指令,并通過直觀的方式將結(jié)果予以反饋,避免了FPGA調(diào)試中使用VIO控制繁瑣、觀測不靈活等特性;中斷可以避免處理器輪詢處理任務(wù)復(fù)雜時(shí)響應(yīng)慢的問題,通過定時(shí)器中斷和串口中斷等中斷接口可以將軟件系統(tǒng)設(shè)計(jì)為前后臺(tái)系統(tǒng),或者搭配嵌入式實(shí)時(shí)操作系統(tǒng),系統(tǒng)靈活性好、反應(yīng)實(shí)時(shí)性高。測試系統(tǒng)SOPC硬件基本架構(gòu)如圖1所示。
SOPC硬件時(shí)鐘由時(shí)鐘輸入經(jīng)過鎖相環(huán)處理后得到,SOPC硬件的復(fù)位信號(hào)由PLL_LOCK以及復(fù)位輸入做邏輯或操作以后在CPU時(shí)鐘下做異步復(fù)位同步釋放操作得到。指令存儲(chǔ)、數(shù)據(jù)存儲(chǔ)由片內(nèi)RAM資源實(shí)現(xiàn)。AXI總線橋掛載APB、GPIO、TIMERT、UART、MEM等外設(shè)接口。通過UART、APB、GPIO、MEM系統(tǒng)具備基本的交互與存儲(chǔ)接口[4],同時(shí)串口和TIMER具備中斷功能,通過軟件配置在中斷條件到達(dá)后處理器可跳轉(zhuǎn)到中斷處理函數(shù),從而系統(tǒng)具備更強(qiáng)的實(shí)時(shí)性。
1.2" 可配置硬件包計(jì)數(shù)量采樣與緩存模塊
包計(jì)數(shù)量采樣模塊根據(jù)可調(diào)節(jié)采樣周期的產(chǎn)生周期采樣信號(hào),將數(shù)據(jù)存到寄存器搭建的實(shí)時(shí)緩存空間內(nèi),可以通過APB寄存器接口配置采樣周期,通過配置采樣周期可以針對應(yīng)用合理設(shè)置時(shí)間窗口得到數(shù)據(jù)指標(biāo)。采樣信號(hào)由周期計(jì)數(shù)器產(chǎn)生,當(dāng)計(jì)數(shù)器到達(dá)采樣周期時(shí)產(chǎn)生單脈沖采樣信號(hào)。緩沖空間采用[N]級寄存器,分別記為REG(0)、REG(1)、REG([N]-2)、REG([N]-1),采樣信號(hào)到來后,將REG([N]-2)的數(shù)據(jù)存入至REG([N]-1),REG(0)的數(shù)據(jù)存入REG(1),同時(shí)將最新的數(shù)據(jù)存入REG(0),并將包計(jì)數(shù)器清零,準(zhǔn)備下一次的數(shù)據(jù)。SOPC可通過APB寄存器接口將采樣信號(hào)讀取,但因?yàn)檐浖僮餮舆t大,直接讀取可能導(dǎo)致所讀取的數(shù)據(jù)在采樣時(shí)間上不連貫,所以增加了數(shù)據(jù)記錄模塊。通過鎖存信號(hào)可以將當(dāng)前時(shí)刻之前的[N]個(gè)采樣數(shù)據(jù)鎖存到數(shù)據(jù)記錄模塊,鎖存信號(hào)可以通過軟件GPIO下發(fā)指令。這樣經(jīng)過握手,先記錄再讀取,軟件讀取的將是過去[N]個(gè)周期的實(shí)時(shí)數(shù)據(jù),避免了采樣數(shù)據(jù)在采樣時(shí)間上不連貫的問題。最后數(shù)據(jù)記錄模塊的數(shù)據(jù)通過APB寄存器接口提取,供軟件計(jì)算處理??膳渲糜布?jì)數(shù)量采樣與緩存模塊的硬件處理流程圖如圖2所示。
1.3" 軟件控制與處理模塊
軟件通過定時(shí)器可以周期性產(chǎn)生中斷信號(hào),當(dāng)定時(shí)時(shí)間到后說明處理器需要進(jìn)行一次數(shù)據(jù)整理與上傳,處理器進(jìn)入中斷處理程序后將計(jì)算標(biāo)志FLAG置1。軟件后臺(tái)在檢測到FLAG為1后按順序執(zhí)行數(shù)據(jù)計(jì)算處理與上傳等過程,處理完后再將FLAG置0。軟件通過訪問相應(yīng)APB寄存器接口可以配置采樣周期、提供鎖存信號(hào)、對采樣鎖存數(shù)據(jù)回讀、數(shù)據(jù)處理得到相應(yīng)帶寬與抖動(dòng)等指標(biāo)。通過系統(tǒng)數(shù)據(jù)流瞬時(shí)帶寬,合理配置采樣周期可以設(shè)置觀測窗口粒度。通過合理設(shè)置定時(shí)器中斷間隔和采樣周期,可以兼顧測試系統(tǒng)軟件處理性能與觀測指標(biāo)精確度。
在軟件后臺(tái)檢測到處理標(biāo)志產(chǎn)生后,首先發(fā)送鎖存信號(hào)將數(shù)據(jù)鎖定,之后通過APB寄存器接口將過去[N]個(gè)采樣周期的包計(jì)數(shù)數(shù)據(jù)[(A1, A2,…, An)]從硬件讀取。軟件計(jì)算過去[N]個(gè)采樣周期的包統(tǒng)計(jì)量均值A(chǔ)VE_NUM,為[(A1+A2+…+An)N]。根據(jù)AVE_NUM以及包有效內(nèi)容,可以得到過去[N]個(gè)采樣周期的平均帶寬[B]。根據(jù)AVE_NUM和各個(gè)采樣周期的返回值,可以得到包統(tǒng)計(jì)量的方差[C],為[(A1-AVE_NUM)2+(A2-AVE_NUM)2+…+]
[(An-AVE_NUM)2N],進(jìn)而得到過去[N]個(gè)采樣周期包數(shù)據(jù)量的標(biāo)準(zhǔn)差[D],為[C]的開方。通過平均帶寬[B]和標(biāo)準(zhǔn)差[D],可以實(shí)時(shí)監(jiān)測系統(tǒng)的帶寬以及系統(tǒng)抖動(dòng)等穩(wěn)定性指標(biāo)。數(shù)據(jù)經(jīng)運(yùn)算整理后,最后通過串口發(fā)送至上位機(jī)。軟件控制與處理流程如圖3所示。
1.4" 基于RapidIO的數(shù)據(jù)處理系統(tǒng)壓力測試模塊
壓力測試的目的是得到系統(tǒng)工作在相應(yīng)硬件環(huán)境下的最大可處理帶寬,可以根據(jù)發(fā)送接口收發(fā)包量與數(shù)據(jù)包格式計(jì)算出系統(tǒng)最大帶寬承載能力。對于FPGA中的RapidIO控制器數(shù)據(jù)流采用的是基于AXI?Stream接口的HELLO格式包[5?7],AXI?Stream接口的時(shí)序如圖4所示。當(dāng)TREADY和TVALID都為高時(shí),表明是控制器可以發(fā)送的有效數(shù)據(jù),若此時(shí)TLAST同時(shí)也為高,表明此數(shù)據(jù)是包的最后一個(gè)數(shù)據(jù),其中第一個(gè)有效數(shù)據(jù)是包頭。
當(dāng)TREADY信號(hào)拉高時(shí)說明接口有能力發(fā)送數(shù)據(jù),此時(shí)將TVALID信號(hào)拉高,TDATA的數(shù)據(jù)將傳入控制器。若每次TREADY為高的周期,總線上都存在符合RapidIO協(xié)議的包格式數(shù)據(jù)時(shí),接口傳送的數(shù)據(jù)帶寬達(dá)到相應(yīng)設(shè)計(jì)環(huán)境的最大值[8]。通過發(fā)包量數(shù)據(jù)和每個(gè)包周期的有效數(shù)據(jù),可以計(jì)算出系統(tǒng)的當(dāng)前帶寬。將TLAST作為包統(tǒng)計(jì)計(jì)數(shù)器的使能信號(hào),包統(tǒng)計(jì)計(jì)數(shù)器即可供鎖存讀取模塊使用,進(jìn)而后續(xù)軟件處理得到相關(guān)指標(biāo)。
FPGA中的RapidIO用戶層包頭格式如圖5所示,因SWRITE包不需要遠(yuǎn)端回復(fù)響應(yīng)包,驗(yàn)證采用SWRITE包[6]。
2" 板級驗(yàn)證
基于以上方法,本文搭建了SOPC的測試環(huán)境,并基于C代碼和Verilog搭建了系統(tǒng)驗(yàn)證環(huán)境。FPGA驗(yàn)證環(huán)境如圖6所示。
FPGA(A)和FPGA(B)通過光纖連接,鏈路層通過FPGA中的SRIO接口連接[9]。FPGA(A)是數(shù)據(jù)發(fā)起與統(tǒng)計(jì)方,F(xiàn)PGA(B)是數(shù)據(jù)處理方,將收到的協(xié)議包加以解析與處理。在FPGA(A)上實(shí)現(xiàn)壓力測試模塊,即可測試搭建系統(tǒng)的最大處理帶寬。軟硬件協(xié)同測試系統(tǒng)定時(shí)握手得到過去若干采樣周期的包統(tǒng)計(jì)信息,經(jīng)過運(yùn)算處理后,將結(jié)果反饋給上位機(jī)。同時(shí),系統(tǒng)還具備參數(shù)配置等功能,通過串口可以向處理器下發(fā)指令,配置采樣周期等參數(shù),計(jì)數(shù)器根據(jù)采樣周期定時(shí)緩存相應(yīng)包數(shù)據(jù)量信息,使得系統(tǒng)具備更多靈活性。當(dāng)應(yīng)用業(yè)務(wù)運(yùn)行成功后,通過串口發(fā)送指令運(yùn)行掃描,定時(shí)器及其中斷系統(tǒng)開始工作,即可實(shí)時(shí)掃描系統(tǒng)的帶寬與抖動(dòng)等性能[10]。
業(yè)務(wù)穩(wěn)定運(yùn)行情況下,對設(shè)計(jì)指標(biāo)進(jìn)行測試,測試結(jié)果如圖7所示。從中可以看出,系統(tǒng)處理帶寬波動(dòng)很小,同時(shí)包數(shù)據(jù)量相關(guān)標(biāo)準(zhǔn)差穩(wěn)定在很小的范圍內(nèi),具備很強(qiáng)的穩(wěn)定性。
為了模擬系統(tǒng)未按照預(yù)期及時(shí)處理數(shù)據(jù)的情況,通過將A與B的光纖拔掉再插上模擬異常情況下系統(tǒng)的性能,測試結(jié)果如圖8所示。
在拔掉或插上時(shí)刻,系統(tǒng)的包數(shù)據(jù)量標(biāo)準(zhǔn)差發(fā)生了明顯改變,系統(tǒng)處于不穩(wěn)定狀態(tài)。
通過實(shí)驗(yàn)結(jié)果發(fā)現(xiàn),在系統(tǒng)穩(wěn)定工作時(shí)發(fā)包量的平均值穩(wěn)定,并且標(biāo)準(zhǔn)差很小,說明系統(tǒng)穩(wěn)定。當(dāng)拔掉光纖時(shí),系統(tǒng)發(fā)包量均值變小直至為0,同時(shí)中間會(huì)有一段時(shí)間標(biāo)準(zhǔn)差很大,說明這段時(shí)間系統(tǒng)不穩(wěn)定。當(dāng)再插入光纖時(shí),系統(tǒng)發(fā)包量均值變小直至與拔光纖前的值接近,同時(shí)標(biāo)準(zhǔn)差也先增大再減小至拔光纖前的穩(wěn)定值。實(shí)驗(yàn)結(jié)果與預(yù)期一致,設(shè)計(jì)的指標(biāo)對于監(jiān)測系統(tǒng)的帶寬以及抖動(dòng)具有一定意義。
3" 結(jié)" 語
通過以上設(shè)計(jì)及實(shí)現(xiàn)證明,本文設(shè)計(jì)的包平均量及抖動(dòng)測試方式對于系統(tǒng)的性能以及可靠性測試具有重要意義,滿足工程需求。系統(tǒng)掃描深度以及間隔可由軟件編程控制,具備一定的靈活性與通用性。通過軟硬件的合理劃分、協(xié)調(diào)調(diào)度,可以方便實(shí)現(xiàn)純硬件難以實(shí)現(xiàn)的復(fù)雜運(yùn)算與處理等問題。軟硬件協(xié)同可編程系統(tǒng)同時(shí)具有處理器和可編程邏輯的優(yōu)點(diǎn),硬件反應(yīng)快速準(zhǔn)確,軟件靈活易修改,協(xié)同系統(tǒng)結(jié)合了硬件和軟件的優(yōu)點(diǎn)。本文所設(shè)計(jì)系統(tǒng)對于性能敏感型系統(tǒng)測試方法具備先進(jìn)性。
參考文獻(xiàn)
[1] 胡濤.基于SRIO的多協(xié)議實(shí)時(shí)交換技術(shù)研究[D].杭州:浙江大學(xué),2022.
[2] 范晉文,周云松,顧瀚戈,等.基于FPGA的SOPC系統(tǒng)Bootloader設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2022,22(11):7?9.
[3] 但成福,李姣,敬世亮,等.一種可軟件配置的RapidIO總線系統(tǒng)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2020,20(7):11?14.
[4] 趙然,常軼松,劉波,等.SoPC FPGA云平臺(tái)軟硬件協(xié)同交互框架[J].高技術(shù)通訊,2020,30(4):342?347.
[5] 劉博.基于FPGA的UART模塊設(shè)計(jì)與實(shí)現(xiàn)[J].無線電工程,2018,48(5):433?438.
[6] 郭佳,張淵,馮偉,等.基于龍芯2K1000處理器和復(fù)旦微FPGA的全國產(chǎn)RapidIO解決方案研究[J].現(xiàn)代電子技術(shù),2023,46(19):8?12.
[7] 孟繁成,喬廬峰,陳慶華.基于RapidIO的星載交換機(jī)的設(shè)計(jì)與實(shí)現(xiàn)[J].通信技術(shù),2019,52(3):758?765.
[8] 田澤,郭海英.RapidIO傳輸性能測試分析研究[J].電腦知識(shí)與技術(shù),2010,6(28):8122?8124.
[9] 崔汪莉,吳剛,黃忠平.基于網(wǎng)絡(luò)消息的RapidIO鏈路可重構(gòu)系統(tǒng)[J].信息化研究,2022,48(1):59?62.
[10] 唐大林,周慶飛,毛鵬飛.基于RapidIO總線的簡約化小型導(dǎo)彈測試設(shè)備設(shè)計(jì)[J].計(jì)算機(jī)測量與控制,2021,29(11):127?131.
[11] 謝鑫.串行RapidIO IP核的設(shè)計(jì)與實(shí)現(xiàn)[D].南京:南京理工大學(xué),2021.
[12] 高業(yè)文.一種機(jī)載嵌入式RapidIO網(wǎng)絡(luò)動(dòng)態(tài)管理方法[J].航空計(jì)算技術(shù),2022,52(4):126?130.
[13] 梁光勝,劉倩茹,姚海洋.RapidIO應(yīng)用系統(tǒng)及其驗(yàn)證模型的設(shè)計(jì)與測試[J].電子設(shè)計(jì)工程,2011,19(23):61?63.
基金項(xiàng)目:河北省創(chuàng)新能力提升計(jì)劃項(xiàng)目(225A0201D)
作者簡介:劉淑濤(1981—),男,河北保定人,碩士研究生,高級工程師,研究方向?yàn)榧呻娐吩O(shè)計(jì)。
張宗森(1991—),男,河北辛集人,碩士研究生,工程師,研究方向?yàn)榧呻娐吩O(shè)計(jì)。
魏" 璇(1987—),男,河北衡水人,碩士研究生,高級工程師,研究方向?yàn)榧呻娐吩O(shè)計(jì)。
張卜方(1987—),男,河北邢臺(tái)人,碩士研究生,高級工程師,研究方向?yàn)榧呻娐吩O(shè)計(jì)。