專利名稱:分布式包交換芯片模型驗(yàn)證系統(tǒng)及驗(yàn)證方法
技術(shù)領(lǐng)域:
本發(fā)明涉及包處理芯片設(shè)計(jì)領(lǐng)域,特別是涉及一種分布式包交換芯片模型驗(yàn)證系統(tǒng)及驗(yàn)證方法。
背景技術(shù):
隨著全球通信技術(shù)的IP (Internet Protocol,網(wǎng)際協(xié)議)化進(jìn)程不斷深入,包交換芯片的應(yīng)用需求日益增多,包交換相關(guān)的協(xié)議也隨之增多,從而使得此類芯片的開發(fā)日趨復(fù)雜。實(shí)際的芯片開發(fā)過程中,常見的芯片驗(yàn)證流程如下:(I)系統(tǒng)功能模型驗(yàn)證階段:系統(tǒng)采用高級語言(例如C語言)進(jìn)行系統(tǒng)功能的建模,即利用程序建模的方法先將芯片的包處理功能模擬出來,測試完成后再以此為基準(zhǔn)進(jìn)行硬件描述語言級別的實(shí)現(xiàn),這一過程可簡稱為C模型測試;(2)電路仿真驗(yàn)證階段:采用硬件描述語言針對已經(jīng)測試通過的C模型功能,完成RTL (Register Transport Level寄存器傳輸級)模塊設(shè)計(jì),并搭建仿真測試平臺進(jìn)行仿真測試;(3)軟硬協(xié)同仿真驗(yàn)證(Co-simulation)階段:將已經(jīng)通過仿真測試的RTL代碼和芯片驅(qū)動軟件的代碼整合在一起進(jìn)行仿真測試;(4)原型驗(yàn)證階段:將上述通過驗(yàn)證的RTL綜合成為實(shí)際的真實(shí)電路,采用特定的FPGA (Field — Programmable Gate Array,現(xiàn)場可編程門陣列)得到物理實(shí)現(xiàn),并在原型驗(yàn)證板和網(wǎng)絡(luò)測試儀表構(gòu)成原型驗(yàn)證環(huán)境中進(jìn)行測試,通常芯片開發(fā)在此階段才將SDK(System Development Kit,系統(tǒng)開發(fā)工具包)和硬件系統(tǒng)一同進(jìn)行系統(tǒng)級別的測試。由于上述4個階段采用的方法不同,一般需要為每個階段單獨(dú)設(shè)計(jì)一套硬件或軟件來分別實(shí)現(xiàn),測試用例無法復(fù)用,導(dǎo)致整個過程異常復(fù)雜。每個包交換芯片需要支持?jǐn)?shù)以千計(jì)的各類網(wǎng)絡(luò)協(xié)議,因此需要在不同級別上分別做大量的測試才能最終完成驗(yàn)證,整個收斂過程會出現(xiàn)大量的反復(fù),待測芯片的功能驗(yàn)證在不同級別的驗(yàn)證收斂時(shí)間冗長,導(dǎo)致開發(fā)進(jìn)度滯后。
發(fā)明內(nèi)容
本發(fā)明提供了一種分布式包交換芯片模型驗(yàn)證系統(tǒng)及驗(yàn)證方法,采用分布式的系統(tǒng)架構(gòu)對不同抽象級別的驗(yàn)證過程進(jìn)行了歸一化處理,能夠大幅縮短待測芯片在不同級別的驗(yàn)證收斂時(shí)間,提高開發(fā)效率,降低調(diào)試成本。本發(fā)明提供的分布式包交換芯片模型驗(yàn)證系統(tǒng),包括核心控制模塊、命令行接口模塊、SDK代理接口模塊、虛擬網(wǎng)絡(luò)測試儀表模塊、虛擬芯片配置模塊和C模型封裝模塊,其中,核心控制模塊屬于服務(wù)端程序模塊,命令行接口模塊、SDK代理接口模塊、虛擬網(wǎng)絡(luò)測試儀表模塊、虛擬芯片配置模塊和C模型封裝模塊屬于客戶端程序模塊,該驗(yàn)證系統(tǒng)屬于客戶端-服務(wù)端-客戶端C/S/C結(jié)構(gòu)的分布式系統(tǒng),同時(shí)支持3種應(yīng)用場景:系統(tǒng)功能模型驗(yàn)證、軟硬協(xié)同仿真驗(yàn)證、原型驗(yàn)證,不同的應(yīng)用場景下所需模塊不同;核心控制模塊,用于:管理與之相連的命令行接口模塊、SDK代理接口模塊、虛擬網(wǎng)絡(luò)測試儀表模塊之間傳遞的消息,完成全局配置文件和程序模塊間專有消息的轉(zhuǎn)發(fā)、復(fù)制、廣播、分類、保存、統(tǒng)計(jì),同時(shí)維護(hù)消息通道的連接;命令行接口模塊,用于:讀取由用戶定制的全局配置文件,根據(jù)讀取的應(yīng)用場景配置參數(shù)啟動當(dāng)前應(yīng)用場景所需的程序模塊,待C/S/C的連接初始化后,為芯片開發(fā)人員提供命令行接口,完成測試用例的定制和編輯;SDK代理接口模塊,用于:接收核心控制模塊發(fā)來的待測包交換芯片配置,根據(jù)待測包交換芯片配置調(diào)用SDK軟件,驅(qū)動待測包交換芯片的模型/原型正常運(yùn)行;虛擬網(wǎng)絡(luò)測試儀表模塊,用于:模擬真實(shí)的網(wǎng)絡(luò)測試儀表,根據(jù)核心控制模塊轉(zhuǎn)發(fā)的待測包交換芯片測試激勵配置消息和響應(yīng)檢查配置消息,完成數(shù)據(jù)包的發(fā)送、接收、校驗(yàn)和統(tǒng)計(jì);虛擬芯片配置模塊,僅用在系統(tǒng)功能模型驗(yàn)證應(yīng)用場景下,用于保存、更新、查詢待測包交換芯片的寄存器配置和包處理協(xié)議表項(xiàng);C模型封裝模塊,用于:讀取虛擬芯片配置模塊中的待測包交換芯片配置,接收測試模塊發(fā)來的測試激勵,將待測包交換芯片配置和測試激勵送給封裝在其內(nèi)部的包交換芯片模型處理,將該包交換芯片模型處理后的結(jié)果發(fā)送到測試模塊;C模型封裝模塊僅在系統(tǒng)功能模型驗(yàn)證應(yīng)用場景下啟用,使包交換芯片模型連接到本分布式系統(tǒng)中。在上述技術(shù)方案的基礎(chǔ)上,所述全局配置文件包括應(yīng)用場景、模型類型、服務(wù)端進(jìn)程配置信息和若干客戶端進(jìn)程配置信息,應(yīng)用場景設(shè)置為系統(tǒng)功能模型驗(yàn)證、軟硬協(xié)同仿真驗(yàn)證、原型驗(yàn)證中的一種,用于控制不同的應(yīng)用場景中所需程序模塊的使能及運(yùn)行方式;模型類型根據(jù)待測芯片的不同模塊的模型被設(shè)置成不同標(biāo)識,僅用在系統(tǒng)功能模型驗(yàn)證應(yīng)用場景下,C模型封裝模塊根據(jù)模型標(biāo)識動態(tài)鏈接對應(yīng)的C模型的目標(biāo)文件;服務(wù)端進(jìn)程配置信息包括IP地址、端口號、進(jìn)程類型和設(shè)備號,客戶端進(jìn)程配置信息包括進(jìn)程類型和設(shè)備號,IP地址和端口號用于創(chuàng)建服務(wù)器端程序模塊和客戶端程序模塊之間的網(wǎng)絡(luò)套接字連接,構(gòu)建程序模塊間的消息通道;進(jìn)程類型被設(shè)置成不同的進(jìn)程標(biāo)識,用于區(qū)分不同的模塊類型;在非組網(wǎng)測試中,核心控制模塊將按照進(jìn)程類型來進(jìn)行對應(yīng)的操作;設(shè)備號用于區(qū)分程序模塊測試的待測芯片,在組網(wǎng)測試中,每個待測芯片都存在唯一的設(shè)備號,在組網(wǎng)測試中,核心控制模塊將按照設(shè)備號、進(jìn)程類型來進(jìn)行對應(yīng)的操作,在非組網(wǎng)測試中,設(shè)備號被系統(tǒng)忽略。在上述技術(shù)方案的基礎(chǔ)上,所述程序模塊間專有消息包括6個消息域:設(shè)備號、來源進(jìn)程類型、目標(biāo)進(jìn)程類型、命令狀態(tài)、消息號、消息內(nèi)容,其中,設(shè)備號用于區(qū)分程序模塊測試的待測芯片,在組網(wǎng)測試中,每個待測芯片都存在唯一的設(shè)備號,在組網(wǎng)測試中,核心控制模塊將按照設(shè)備號、進(jìn)程類型來進(jìn)行對應(yīng)的操作,在非組網(wǎng)測試中,設(shè)備號被系統(tǒng)忽略;來源進(jìn)程類型和目標(biāo)進(jìn)程類型用于表示一個消息的來源和目標(biāo),便于核心控制模塊將按照進(jìn)程類型進(jìn)行轉(zhuǎn)發(fā),同時(shí)用于和消息號一同計(jì)算得出全局消息號;命令狀態(tài)用于表示一個消息的基本返回狀態(tài);消息號用于區(qū)分同一類程序模塊內(nèi)不同的消息,核心控制模塊根據(jù)全局消息號進(jìn)行操作;消息內(nèi)容是各個消息號對應(yīng)的具體消息內(nèi)容。在上述技術(shù)方案的基礎(chǔ)上,所述命令狀態(tài)包括正確返回、命令錯誤和命令超時(shí)3種狀態(tài)。在上述技術(shù)方案的基礎(chǔ)上,所述具體消息內(nèi)容包括子消息、字符串信息和協(xié)議報(bào)文。在上述技術(shù)方案的基礎(chǔ)上,每一類程序模塊內(nèi)部的消息號是獨(dú)立編號的,對于整個分布式系統(tǒng)而言,全局消息號=目標(biāo)進(jìn)程類型的全局起始消息編號+消息號。在上述技術(shù)方案的基礎(chǔ)上,所述測試用例支持的命令包括待測芯片配置命令、虛擬網(wǎng)絡(luò)測試儀表的激勵配置命令、響應(yīng)期望檢查規(guī)則配置命令和本分布式系統(tǒng)的調(diào)試命令。在上述技術(shù)方案的基礎(chǔ)上,所述核心控制模塊、命令行接口模塊、SDK代理接口模塊、虛擬網(wǎng)絡(luò)測試儀表模塊、虛擬芯片配置模塊和C模型封裝模塊分布在相同機(jī)器或不同機(jī)器上。在上述技術(shù)方案的基礎(chǔ)上,所述核心控制模塊、命令行接口模塊、SDK代理接口模塊、虛擬網(wǎng)絡(luò)測試儀表模塊、虛擬芯片配置模塊和C模型封裝模塊分布在相同操作系統(tǒng)或不同操作系統(tǒng)中。基于上述分布式包交換芯片模型驗(yàn)證系統(tǒng),本發(fā)明實(shí)施例還提供一種分布式包交換芯片模型驗(yàn)證方法,包括以下步驟:S1、在系統(tǒng)功能模型驗(yàn)證場景下:步驟101、系統(tǒng)初始化:設(shè)置全局配置的應(yīng)用場景為系統(tǒng)功能模型驗(yàn)證,配置待測芯片的模型類型及設(shè)備號,配置核心控制模塊、命令行接口模塊、SDK代理接口模塊、虛擬網(wǎng)絡(luò)測試儀表模塊、虛擬芯片配置模塊和C模型封裝模塊的進(jìn)程標(biāo)識和設(shè)備號,先啟動核心控制模塊,然后啟動客戶端程序模塊,客戶端程序模塊根據(jù)全局配置中的IP地址、端口號自動創(chuàng)建與核心控制模塊之間的消息通道,各模塊分布在一臺或多臺機(jī)器上;步驟102、測試命令或腳本錄入:用戶錄入命令行接口模塊所能識別的各種命令、腳本,命令行接口模塊將命令、腳本文件轉(zhuǎn)換成為命令消息發(fā)送到核心控制模塊,命令消息包括待測芯片配置命令、激勵配置命令、響應(yīng)期望檢查規(guī)則配置命令;步驟103、測試命令轉(zhuǎn)發(fā):核心控制模塊根據(jù)收到的命令消息中的目的進(jìn)程類型和設(shè)備號,將待測芯片配置命令轉(zhuǎn)發(fā)到SDK代理接口模塊,將激勵配置命令、響應(yīng)期望檢查規(guī)則配置命令轉(zhuǎn)發(fā)到虛擬網(wǎng)絡(luò)測試儀表模塊;步驟104、待測芯片配置命令處理:SDK代理接口模塊將收到的待測芯片配置命令轉(zhuǎn)換成具體的芯片配置,寫入/讀取虛擬芯片配置模塊中的寄存器和表項(xiàng)數(shù)據(jù),供C模型封裝模塊讀??;步驟105、激勵配置命令處理:虛擬網(wǎng)絡(luò)測試儀表模塊根據(jù)收到的激勵配置命令,產(chǎn)生對應(yīng)的各種協(xié)議包數(shù)據(jù),并發(fā)送給C模型封裝模塊,同時(shí)記錄這些生成的激勵包數(shù)據(jù),為后續(xù)的期望包數(shù)據(jù)生成做準(zhǔn)備;步驟106、響應(yīng)期望檢查規(guī)則配置命令處理:虛擬網(wǎng)絡(luò)測試儀表模塊根據(jù)收到的響應(yīng)期望檢查規(guī)則配置命令和步驟105中記錄的激勵包數(shù)據(jù),計(jì)算得到期望得到的響應(yīng)包數(shù)據(jù),并記錄下來,為后續(xù)的實(shí)際響應(yīng)包和期望的響應(yīng)包之間進(jìn)行自動比較做準(zhǔn)備;步驟107、C模型封裝模塊的包處理:C模型封裝器將收到的各種激勵包數(shù)據(jù)轉(zhuǎn)換成待測芯片模型所能識別的數(shù)據(jù)結(jié)構(gòu),調(diào)用待測芯片模型的功能,得到響應(yīng)包的數(shù)據(jù)結(jié)構(gòu),轉(zhuǎn)換成虛擬網(wǎng)絡(luò)測試儀表模塊需要的響應(yīng)包消息格式,發(fā)送給虛擬網(wǎng)絡(luò)測試儀表模塊;步驟108、比較實(shí)際響應(yīng)包與期望響應(yīng)包:虛擬網(wǎng)絡(luò)測試儀表模塊將收到的實(shí)際響應(yīng)包于之前記錄的期望響應(yīng)包進(jìn)行比較,得到最終的結(jié)果,并將結(jié)果以文件的方式保存下來,供測試人員查閱;S2、在軟硬協(xié)同仿真驗(yàn)證場景下:步驟201、系統(tǒng)初始化:設(shè)置全局配置的應(yīng)用場景為軟硬協(xié)同仿真驗(yàn)證,配置待測芯片的模型類型及設(shè)備號,配置核心控制模塊、命令行接口模塊、SDK代理接口模塊、虛擬網(wǎng)絡(luò)測試儀表模塊的進(jìn)程標(biāo)識和設(shè)備號,先啟動核心控制模塊,然后啟動客戶端程序模塊,客戶端程序模塊根據(jù)全局配置中的IP地址、端口號自動創(chuàng)建與核心控制模塊之間的消息通道,各模塊分布在一臺或多臺機(jī)器上;步驟202、測試命令或腳本錄入,與步驟102相同:用戶錄入命令行接口模塊所能識別的各種命令、腳本,命令行接口模塊將命令、腳本文件轉(zhuǎn)換成為命令消息發(fā)送到核心控制模塊,命令消息包括待測芯片配置命令、激勵配置命令、響應(yīng)期望檢查規(guī)則配置命令;步驟203、測試命令轉(zhuǎn)發(fā),與步驟103相同:核心控制模塊根據(jù)收到的命令消息中的目的進(jìn)程類型和設(shè)備號,將待測芯片配置命令轉(zhuǎn)發(fā)到SDK代理接口模塊,將激勵配置命令、響應(yīng)期望檢查規(guī)則配置命令轉(zhuǎn)發(fā)到虛擬網(wǎng)絡(luò)測試儀表模塊;步驟204、待測芯片配置命令處理:SDK代理接口模塊將收到的待測芯片配置命令轉(zhuǎn)換成具體的芯片配置,通過RTL仿真器提供的直接編程接口 DPI調(diào)用仿真測試平臺的寄存器及表項(xiàng)配置功能,完成對RTL中的寄存器及表項(xiàng)配置進(jìn)行讀寫操作;如果原RTL仿真測試平臺沒有開發(fā)對應(yīng)的寄存器及表項(xiàng)配置DPI,則添加寄存器及表項(xiàng)配置DPI來適配本系統(tǒng);步驟205、激勵配置命令處理:虛擬網(wǎng)絡(luò)測試儀表模塊根據(jù)收到的激勵配置命令,產(chǎn)生對應(yīng)的各種協(xié)議包數(shù)據(jù),通過DPI調(diào)用仿真測試平臺的激勵信號驅(qū)動功能,將激勵包數(shù)據(jù)驅(qū)動到待測RTL模塊的接口信號上,同時(shí)記錄這些生成的激勵包數(shù)據(jù),為后續(xù)的期望包數(shù)據(jù)生成做準(zhǔn)備;如果原RTL仿真測試平臺沒有開發(fā)對應(yīng)的激勵信號驅(qū)動DPI,則添加激勵信號驅(qū)動DPI來適配本系統(tǒng);步驟206、響應(yīng)期望檢查規(guī)則配置命令處理:虛擬網(wǎng)絡(luò)測試儀表模塊根據(jù)收到的響應(yīng)期望檢查規(guī)則配置命令和上一步處理中記錄的激勵包數(shù)據(jù),計(jì)算得到期望得到的響應(yīng)包數(shù)據(jù),通過DPI將期望的響應(yīng)包存入RTL的仿真測試平臺,為后續(xù)的實(shí)際響應(yīng)包和期望的響應(yīng)包之間進(jìn)行自動比較做準(zhǔn)備;如果原RTL仿真測試平臺沒有開發(fā)對應(yīng)的期望響應(yīng)包存儲DPI,則添加期望響應(yīng)包存儲DPI來適配本系統(tǒng);步驟207、RTL仿真:RTL的仿真測試平臺從其DPI接口得到激勵包數(shù)據(jù),驅(qū)動到RTL模塊的輸入接口信號上,待RTL模塊處理完成后,從RTL模塊的輸出接口信號上,得到實(shí)際的響應(yīng)包數(shù)據(jù);步驟208、比較實(shí)際響應(yīng)包與期望響應(yīng)包:RTL的仿真測試平臺內(nèi)部比較實(shí)際響應(yīng)包和期望響應(yīng)包的數(shù)據(jù),得到最終的結(jié)果,并將結(jié)果以文件的方式保存下來,供測試人員查閱;S3、在原型驗(yàn)證場景下:步驟301、系統(tǒng)初始化:設(shè)置全局配置的應(yīng)用場景為原型驗(yàn)證,配置待測芯片的模型類型及設(shè)備號,配置核心控制模塊、命令行接口模塊、SDK代理接口模塊、虛擬網(wǎng)絡(luò)測試儀表模塊的進(jìn)程標(biāo)識和設(shè)備號,先啟動核心控制模塊,然后啟動客戶端程序模塊,客戶端程序模塊根據(jù)全局配置中的IP地址、端口號自動創(chuàng)建與核心控制模塊之間的消息通道,SDK代理接口模塊配置在原型驗(yàn)證板的嵌入式系統(tǒng)中啟動,其余各個模塊分布在一臺或多臺機(jī)器上;步驟302、測試命令或腳本錄入,與步驟202相同:用戶錄入命令行接口模塊所能識別的各種命令、腳本,命令行接口模塊將命令、腳本文件轉(zhuǎn)換成為命令消息發(fā)送到核心控制模塊,命令消息包括待測芯片配置命令、激勵配置命令、響應(yīng)期望檢查規(guī)則配置命令;步驟303、測試命令轉(zhuǎn)發(fā),與步驟203相同:核心控制模塊根據(jù)收到的命令消息中的目的進(jìn)程類型和設(shè)備號,將待測芯片配置命令轉(zhuǎn)發(fā)到SDK代理接口模塊,將激勵配置命令、響應(yīng)期望檢查規(guī)則配置命令轉(zhuǎn)發(fā)到虛擬網(wǎng)絡(luò)測試儀表模塊;步驟304、待測芯片配置命令處理:SDK代理接口模塊將收到的待測芯片配置命令轉(zhuǎn)換成具體的芯片配置,調(diào)用SDK的寄存器及表項(xiàng)配置功能,完成對待測FPGA中的寄存器和表項(xiàng)進(jìn)行讀寫操作;步驟305、激勵配置命令處理:虛擬網(wǎng)絡(luò)測試儀表模塊根據(jù)收到的激勵配置命令,產(chǎn)生對應(yīng)的各種協(xié)議包數(shù)據(jù),通過調(diào)用真實(shí)網(wǎng)絡(luò)測試儀表的數(shù)據(jù)包發(fā)送功能,將包直接送到待測原型驗(yàn)證板的網(wǎng)口上面,同時(shí)記錄這些生成的激勵包數(shù)據(jù),為后續(xù)的期望包數(shù)據(jù)生成做準(zhǔn)備;步驟306、響應(yīng)期望檢查規(guī)則配置命令處理:虛擬網(wǎng)絡(luò)測試儀表模塊根據(jù)收到的響應(yīng)期望檢查規(guī)則配置命令和上一步處理中記錄的激勵包數(shù)據(jù),計(jì)算得到期望得到的響應(yīng)包數(shù)據(jù),并記錄下來,同時(shí)開啟真實(shí)網(wǎng)絡(luò)測試儀表的包抓取功能,為后續(xù)的實(shí)際響應(yīng)包和期望的響應(yīng)包之間進(jìn)行自動比較做準(zhǔn)備;步驟307、FPGA完成包處理:待測芯片的物理實(shí)現(xiàn)FPGA通過原型驗(yàn)證板的網(wǎng)口得到激勵包數(shù)據(jù),處理完成后發(fā)送實(shí)際的響應(yīng)包數(shù)據(jù)到原型驗(yàn)證板的網(wǎng)口,同時(shí)儀表接收到響應(yīng)包,將收到的包存入其內(nèi)部的緩存;步驟308、比較實(shí)際響應(yīng)包與期望響應(yīng)包,虛擬網(wǎng)絡(luò)測試儀表模塊發(fā)完所有的激勵包后,調(diào)用真實(shí)網(wǎng)絡(luò)測試儀表的包抓取緩存讀取功能,得到實(shí)際的響應(yīng)包數(shù)據(jù),與之前記錄的期望響應(yīng)包進(jìn)行比較,得到最終的結(jié)果,并將結(jié)果以文件的方式保存下來,供測試人員查閱。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)如下:(I)本發(fā)明適用于包交換芯片驗(yàn)證的整個過程,尤其是前端驗(yàn)證,效果非常顯著,初期系統(tǒng)模型驗(yàn)證期間能夠?qū)⑺袦y試用例測試完成,后續(xù)的軟硬協(xié)同仿真階段和原型驗(yàn)證階段仍然可以沿用之前的測試用例,在不修改原有測試用例的情況下,只需修改少量全局配置參數(shù),就能夠?qū)崿F(xiàn)無縫切換,全自動的完成所有測試,能夠大幅縮短待測芯片在不同級別的驗(yàn)證收斂時(shí)間,提高開發(fā)效率。(2)本發(fā)明能夠利用多個分布在不同的機(jī)器上的程序模塊并行運(yùn)行,使得整體的運(yùn)行效率得到提聞。(3)本發(fā)明在芯片開發(fā)早期將SDK直接嵌入至分布式系統(tǒng)中,提前進(jìn)行驗(yàn)證,這樣,通常需要等到原型驗(yàn)證板完成后才能進(jìn)行的工作在芯片開發(fā)的初期就已經(jīng)與其他工作一起完成,而且在后期的原型驗(yàn)證中再次使用SDK,此時(shí)的SDK是已經(jīng)通過驗(yàn)證的,因而能夠提高原型驗(yàn)證中系統(tǒng)測試的效率,降低調(diào)試成本。(4)包交換類的芯片測試中往往存在多芯片的組網(wǎng)測試,傳統(tǒng)的驗(yàn)證系統(tǒng)及方法通常難以支持,本發(fā)明的分布式系統(tǒng)架構(gòu)能夠方便的支持多個待測芯片的組網(wǎng)測試。(5)本發(fā)明的分布式系統(tǒng)架構(gòu)定義了專有的通信消息機(jī)制,通過添加消息轉(zhuǎn)換程序,將本系統(tǒng)的消息內(nèi)容轉(zhuǎn)換成為其他各種軟件/硬件系統(tǒng)能夠接受的操作(例如硬件描述語言的仿真器,網(wǎng)絡(luò)測試儀表命令接口),消息轉(zhuǎn)換程序和核心控制模塊能夠進(jìn)行消息通信,從而完成互聯(lián)。因?yàn)橥ǔ5?方的系統(tǒng)都有自己的一套接口,因?yàn)楸痉植际较到y(tǒng)定義了統(tǒng)一的通信消息格式,所以只用完成消息到第3方系統(tǒng)所能識別的指令接口即可完成互聯(lián),內(nèi)部的處理消息的方式仍然不變。如果不是分布式的系統(tǒng)架構(gòu),沒有這種消息機(jī)制,和其他系統(tǒng)的互聯(lián)將難以完成,只能用其他系統(tǒng)提供的軟件庫和本系統(tǒng)編譯在一起才能完成。
圖1是本發(fā)明實(shí)施例中分布式包交換芯片模型驗(yàn)證系統(tǒng)的結(jié)構(gòu)示意圖。圖2為本發(fā)明實(shí)施例中系統(tǒng)全局配置的結(jié)構(gòu)示意圖。圖3為本發(fā)明實(shí)施例中進(jìn)程間消息的結(jié)構(gòu)示意圖。圖4為本發(fā)明實(shí)施例中系統(tǒng)功能模型驗(yàn)證的流程圖。圖5為本發(fā)明實(shí)施例中軟硬協(xié)同仿真驗(yàn)證的流程圖。圖6為本發(fā)明實(shí)施例中原型驗(yàn)證的流程圖。
具體實(shí)施例方式下面結(jié)合附圖及具體實(shí)施例對本發(fā)明作進(jìn)一步的詳細(xì)描述。參見圖1所示,本發(fā)明實(shí)施例提供一種分布式包交換芯片模型驗(yàn)證系統(tǒng),包括核心控制模塊、命令行接口模塊、SDK代理接口模塊、虛擬網(wǎng)絡(luò)測試儀表模塊、虛擬芯片配置模塊和C模型封裝模塊,其中,核心控制模塊屬于服務(wù)端程序模塊,命令行接口模塊、SDK代理接口模塊、虛擬網(wǎng)絡(luò)測試儀表模塊、虛擬芯片配置模塊和C模型封裝模塊屬于客戶端程序模塊。該驗(yàn)證系統(tǒng)屬于C/S/C (Client-Server-Client客戶端-服務(wù)端-客戶端)結(jié)構(gòu)的分布式系統(tǒng),同時(shí)支持3種應(yīng)用場景:系統(tǒng)功能模型驗(yàn)證、軟硬協(xié)同仿真驗(yàn)證、原型驗(yàn)證,在不同的應(yīng)用場景下所需的程序模塊不同。核心控制模塊,屬于整個分布式系統(tǒng)的服務(wù)端程序,用于:管理與之相連的命令行接口模塊、SDK代理接口模塊、虛擬網(wǎng)絡(luò)測試儀表模塊之間傳遞的消息,完成本發(fā)明實(shí)施例的專有消息格式(后文將進(jìn)一步說明)的轉(zhuǎn)發(fā)、復(fù)制、廣播、分類、保存、統(tǒng)計(jì),同時(shí)維護(hù)消息通道的連接。命令行接口模塊,用于:讀取由用戶定制的本發(fā)明實(shí)施例專有的全局配置文件(后文將進(jìn)一步說明),根據(jù)讀取的應(yīng)用場景配置參數(shù)啟動當(dāng)前應(yīng)用場景所需的程序模塊,待C/S/C的連接初始化后,為芯片開發(fā)人員提供命令行接口,完成測試用例的定制和編輯。測試用例支持的命令包含待測芯片配置命令,虛擬網(wǎng)絡(luò)測試儀表的激勵配置命令、響應(yīng)期望檢查規(guī)則配置命令,以及本分布式系統(tǒng)的調(diào)試命令等。測試用例,可以在命令行上鍵入的方式送入命令行接口,也可以是一個預(yù)先寫好的腳本文件(包含多條命令的文本文件)送入命令接口,本模塊將所有命令轉(zhuǎn)化成為本發(fā)明實(shí)施例的專有消息格式發(fā)送給核心控制模塊,并從核心控制模塊接收命令運(yùn)行結(jié)果消息,提取消息中運(yùn)行結(jié)果顯示在命令行上。另外,本模塊的所有命令交互記錄都將記錄在日志文件中,方便調(diào)試和分析測試結(jié)果。SDK代理接口模塊,用于:接收核心控制模塊發(fā)來的待測包交換芯片配置,根據(jù)待測包交換芯片配置調(diào)用SDK軟件,驅(qū)動待測包交換芯片的模型/原型正常運(yùn)行;其運(yùn)行方式會根據(jù)全局配置中應(yīng)用場景配置參數(shù)的不同而發(fā)生變化。(后文會進(jìn)一步說明)。虛擬網(wǎng)絡(luò)測試儀表模塊,用于:模擬真實(shí)的網(wǎng)絡(luò)測試儀表,根據(jù)核心控制模塊轉(zhuǎn)發(fā)的待測包交換芯片測試激勵配置消息和響應(yīng)檢查配置消息,完成數(shù)據(jù)包的發(fā)送、接收、校驗(yàn)和統(tǒng)計(jì);其運(yùn)行方式會根據(jù)全局配置中應(yīng)用場景配置參數(shù)的不同而發(fā)生變化。虛擬芯片配置模塊,用于:保存、更新、查詢待測包交換芯片的寄存器配置和包處理協(xié)議表項(xiàng)。虛擬芯片配置模塊僅在系統(tǒng)功能模型驗(yàn)證應(yīng)用場景下啟用,對于軟硬協(xié)同仿真驗(yàn)證和原型驗(yàn)證這2種應(yīng)用場景,此模塊的功能分別在RTL模塊中及FPGA內(nèi)的實(shí)際電路完成。C模型封裝模塊,用于:讀取虛擬芯片配置模塊中的待測包交換芯片配置,接收測試模塊發(fā)來的測試激勵,將待測包交換芯片配置和測試激勵送給封裝在其內(nèi)部的包交換芯片模型處理,將該包交換芯片模型處理后的結(jié)果發(fā)送到測試模塊。在包交換芯片模型處理過程中,可能會修改虛擬芯片配置模塊中的待測包交換芯片配置。C模型封裝模塊僅在系統(tǒng)功能模型驗(yàn)證應(yīng)用場景下啟用,使包交換芯片模型能夠連接到本分布式系統(tǒng)中,對于軟硬協(xié)同仿真驗(yàn)證和原型驗(yàn)證這2種應(yīng)用場景,待測包交換芯片的實(shí)現(xiàn)形式分別為RTL代碼及FPGA內(nèi)的實(shí)際電路。上述6個程序模塊都可以作為獨(dú)立的進(jìn)程運(yùn)行于不同的機(jī)器,不同的操作系統(tǒng)上面,最終構(gòu)成整個分布式驗(yàn)證系統(tǒng)。為了完成整個分布式驗(yàn)證系統(tǒng)的互聯(lián)和互通控制,本發(fā)明實(shí)施例制定了專有的全局配置文件格式和程序模塊間專有消息格式。參見圖2所示,全局配置文件包括應(yīng)用場景、模型類型、服務(wù)端進(jìn)程配置信息和若干客戶端進(jìn)程配置信息,應(yīng)用場景設(shè)置為系統(tǒng)功能模型驗(yàn)證、軟硬協(xié)同仿真驗(yàn)證、原型驗(yàn)證中的一種,用于控制不同的應(yīng)用場景中上述6個程序模塊中所需程序模塊的使能及運(yùn)行方式;驗(yàn)證過程是一步步的完成,一開始可能是一個個的待測模塊在本系統(tǒng)中得到驗(yàn)證,然后再將待測模塊拼接成為完整的待測芯片,每個模塊/芯片在系統(tǒng)功能模型驗(yàn)證中都對應(yīng)成為一個C模型,因此需要選擇是哪一個模型。模型類型根據(jù)待測芯片的不同模塊的模型被設(shè)置成不同標(biāo)識,僅用在系統(tǒng)功能模型驗(yàn)證應(yīng)用場景下,C模型封裝模塊根據(jù)模型標(biāo)識動態(tài)鏈接對應(yīng)的C模型的目標(biāo)文件;服務(wù)端進(jìn)程配置信息包括IP地址、端口號、進(jìn)程類型和設(shè)備號,客戶端進(jìn)程配置信息包括進(jìn)程類型和設(shè)備號,IP地址和端口號用于創(chuàng)建服務(wù)器端程序模塊和客戶端程序模塊之間的網(wǎng)絡(luò)套接字(Socket)連接,構(gòu)建程序模塊間的消息通道;進(jìn)程類型被設(shè)置成不同的進(jìn)程標(biāo)識,用于區(qū)分上述6種不同的程序模塊類型,這里設(shè)置是對每個需要啟動的程序模塊設(shè)置標(biāo)識,這樣核心控制器才能分辨消息是來自哪個程序模塊,需要轉(zhuǎn)發(fā)到哪個程序模塊。在非組網(wǎng)測試中,核心控制模塊將按照進(jìn)程類型來進(jìn)行對應(yīng)的操作;設(shè)備號用于區(qū)分程序模塊測試的待測芯片,在組網(wǎng)測試中,每個待測芯片都存在唯一的設(shè)備號,在組網(wǎng)測試中,核心控制模塊將按照設(shè)備號、進(jìn)程類型來進(jìn)行對應(yīng)的操作,在非組網(wǎng)測試中,此設(shè)備號將被系統(tǒng)忽略。不同的應(yīng)用場景下,全局配置項(xiàng)根據(jù)需要啟動的程序模塊類型,逐個填入上述配置,不需要啟動的程序模塊其模塊類型相關(guān)的配置不應(yīng)填入(后文有進(jìn)一步說明)。參見圖3所示,程序模塊間專有消息包括6個消息域:設(shè)備號、來源進(jìn)程類型、目標(biāo)進(jìn)程類型、命令狀態(tài)、消息號、消息內(nèi)容,其中,設(shè)備號用于區(qū)分程序模塊測試的待測芯片,在組網(wǎng)測試中,每個待測芯片都存在唯一的設(shè)備號,在組網(wǎng)測試中,核心控制模塊將按照設(shè)備號、進(jìn)程類型來進(jìn)行對應(yīng)的操作,在非組網(wǎng)測試中,此設(shè)備號將被系統(tǒng)忽略;來源進(jìn)程類型和目標(biāo)進(jìn)程類型用于表示一個消息的來源和目標(biāo),便于核心控制模塊將按照進(jìn)程類型進(jìn)行轉(zhuǎn)發(fā),同時(shí)用于和消息號一同計(jì)算得出全局消息號;命令狀態(tài)用于表不一個消息的基本返回狀態(tài),包含正確返回、命令錯誤和命令超時(shí)3種狀態(tài);消息號用于區(qū)分同一類程序模塊內(nèi)不同的消息,每一類程序模塊內(nèi)部的消息號是獨(dú)立編號的,對于整個分布式系統(tǒng)而言,全局消息號=目標(biāo)進(jìn)程類型的全局起始消息編號+消息號,核心控制模塊根據(jù)全局消息號進(jìn)行操作;消息內(nèi)容是各個消息號對應(yīng)的具體消息內(nèi)容,理論上可以存放任意字節(jié)的數(shù)據(jù),具體消息內(nèi)容包括子消息(例如命令包括多個參數(shù))、字符串信息和協(xié)議報(bào)文(如各類包數(shù)據(jù))等,根據(jù)各模塊的功能需要和處理的多種不同消息,具體消息內(nèi)容和待測芯片的具體功能相關(guān),本發(fā)明實(shí)施例中的程序模塊間專有消息格式作為一種通用的消息格式,可以適用于各種待測的包交換類型芯片。基于上述分布式包交換芯片模型驗(yàn)證系統(tǒng)(包括全局配置和程序模塊消息機(jī)制在內(nèi)),本發(fā)明實(shí)施例提供一種分布式包交換芯片模型驗(yàn)證方法,能夠同時(shí)支持3種應(yīng)用場景:系統(tǒng)功能模型驗(yàn)證、軟硬協(xié)同仿真驗(yàn)證、原型驗(yàn)證,下面進(jìn)行詳細(xì)說明。本發(fā)明實(shí)施例提供的分布式包交換芯片模型驗(yàn)證方法,包括以下步驟:S1、參見圖4所示,在系統(tǒng)功能模型驗(yàn)證場景下:步驟101、系統(tǒng)初始化:設(shè)置全局配置的應(yīng)用場景為系統(tǒng)功能模型驗(yàn)證,配置待測芯片的模型類型及設(shè)備號,配置核心控制模塊、命令行接口模塊、SDK代理接口模塊、虛擬網(wǎng)絡(luò)測試儀表模塊、虛擬芯片配置模塊和C模型封裝模塊的進(jìn)程標(biāo)識和設(shè)備號,先啟動服務(wù)端程序模塊,即核心控制模塊,然后啟動客戶端程序模塊,客戶端程序模塊根據(jù)全局配置中的IP地址、端口號自動創(chuàng)建與核心控制模塊之間的消息通道,各個模塊啟動所在的位置不限,可以在一臺機(jī)器上,也可分布在多臺機(jī)器上;步驟102、測試命令或腳本錄入:用戶錄入命令行接口模塊所能識別的各種命令、腳本,命令行接口模塊將命令、腳本文件轉(zhuǎn)換成為命令消息發(fā)送到核心控制模塊,命令消息包括待測芯片配置命令、激勵配置命令、響應(yīng)期望檢查規(guī)則配置命令;步驟103、測試命令轉(zhuǎn)發(fā):核心控制模塊根據(jù)收到的命令消息中的目的進(jìn)程類型和設(shè)備號,將待測芯片配置命令轉(zhuǎn)發(fā)到SDK代理接口模塊,將激勵配置命令、響應(yīng)期望檢查規(guī)則配置命令轉(zhuǎn)發(fā)到虛擬網(wǎng)絡(luò)測試儀表模塊;步驟104、待測芯片配置命令處理:SDK代理接口模塊將收到的待測芯片配置命令轉(zhuǎn)換成具體的芯片配置,寫入/讀取虛擬芯片配置模塊中的寄存器和表項(xiàng)數(shù)據(jù),供C模型封裝模塊讀?。徊襟E105、激勵配置命令處理:虛擬網(wǎng)絡(luò)測試儀表模塊根據(jù)收到的激勵配置命令,產(chǎn)生對應(yīng)的各種協(xié)議包數(shù)據(jù),并發(fā)送給C模型封裝模塊,同時(shí)記錄這些生成的激勵包數(shù)據(jù),為后續(xù)的期望包數(shù)據(jù)生成做準(zhǔn)備;步驟106、響應(yīng)期望檢查規(guī)則配置命令處理:虛擬網(wǎng)絡(luò)測試儀表模塊根據(jù)收到的響應(yīng)期望檢查規(guī)則配置命令和步驟105中記錄的激勵包數(shù)據(jù),計(jì)算得到期望得到的響應(yīng)包數(shù)據(jù),并記錄下來,為后續(xù)的實(shí)際響應(yīng)包和期望的響應(yīng)包之間進(jìn)行自動比較做準(zhǔn)備;步驟107、C模型封裝模塊的包處理:C模型封裝器將收到的各種激勵包數(shù)據(jù)轉(zhuǎn)換成待測芯片模型所能識別的數(shù)據(jù)結(jié)構(gòu),調(diào)用待測芯片模型的功能,得到響應(yīng)包的數(shù)據(jù)結(jié)構(gòu),轉(zhuǎn)換成虛擬網(wǎng)絡(luò)測試儀表模塊需要的響應(yīng)包消息格式,發(fā)送給虛擬網(wǎng)絡(luò)測試儀表模塊;步驟108、比較實(shí)際響應(yīng)包與期望響應(yīng)包:虛擬網(wǎng)絡(luò)測試儀表模塊將收到的實(shí)際響應(yīng)包于之前記錄的期望響應(yīng)包進(jìn)行比較,得到最終的結(jié)果,并將結(jié)果以文件的方式保存下來,供測試人員查閱。S2、參見圖5所示,在軟硬協(xié)同仿真驗(yàn)證場景下:步驟201、系統(tǒng)初始化:設(shè)置全局配置的應(yīng)用場景為軟硬協(xié)同仿真驗(yàn)證,配置待測芯片的模型類型及設(shè)備號,配置核心控制模塊、命令行接口模塊、SDK代理接口模塊、虛擬網(wǎng)絡(luò)測試儀表模塊的進(jìn)程標(biāo)識和設(shè)備號,先啟動服務(wù)端程序模塊,即核心控制模塊,然后啟動客戶端程序模塊,客戶端程序模塊根據(jù)全局配置中的IP地址、端口號自動創(chuàng)建與核心控制模塊之間的消息通道,各個模塊啟動所在的位置不限,可以在一臺機(jī)器上,也可分布在多臺機(jī)器上;軟硬協(xié)同仿真驗(yàn)證場景下的全局配置與系統(tǒng)功能模型驗(yàn)證場景下的全局配置對t匕,差異在于將應(yīng)用場景變更為軟硬協(xié)同仿真驗(yàn)證,去除虛擬芯片配置模塊和C模型封裝模塊的進(jìn)程標(biāo)識和設(shè)備號,其余初始化操作和系統(tǒng)功能模型驗(yàn)證場景下一致;步驟202、測試命令或腳本錄入,與步驟102相同:用戶錄入命令行接口模塊所能識別的各種命令、腳本,命令行接口模塊將命令、腳本文件轉(zhuǎn)換成為命令消息發(fā)送到核心控制模塊,命令消息包括待測芯片配置命令、激勵配置命令、響應(yīng)期望檢查規(guī)則配置命令;步驟203、測試命令轉(zhuǎn)發(fā),與步驟103相同:核心控制模塊根據(jù)收到的命令消息中的目的進(jìn)程類型和設(shè)備號,將待測芯片配置命令轉(zhuǎn)發(fā)到SDK代理接口模塊,將激勵配置命令、響應(yīng)期望檢查規(guī)則配置命令轉(zhuǎn)發(fā)到虛擬網(wǎng)絡(luò)測試儀表模塊;步驟204、待測芯片配置命令處理:SDK代理接口模塊將收到的待測芯片配置命令轉(zhuǎn)換成具體的芯片配置,通過RTL仿真器提供的DPI (Direct Programming Interface,直接編程接口)調(diào)用仿真測試平臺的寄存器及表項(xiàng)配置功能,完成對RTL中的寄存器及表項(xiàng)配置進(jìn)行讀寫操作;如果原RTL仿真測試平臺沒有開發(fā)對應(yīng)的寄存器及表項(xiàng)配置DPI,則必須要添加寄存器及表項(xiàng)配置DPI來適配本系統(tǒng);步驟205、激勵配置命令處理:虛擬網(wǎng)絡(luò)測試儀表模塊根據(jù)收到的激勵配置命令,產(chǎn)生對應(yīng)的各種協(xié)議包數(shù)據(jù),通過DPI調(diào)用仿真測試平臺的激勵信號驅(qū)動功能,將激勵包數(shù)據(jù)驅(qū)動到待測RTL模塊的接口信號上,同時(shí)記錄這些生成的激勵包數(shù)據(jù),為后續(xù)的期望包數(shù)據(jù)生成做準(zhǔn)備;如果原RTL仿真測試平臺沒有開發(fā)對應(yīng)的激勵信號驅(qū)動DPI,則必須要添加激勵信號驅(qū)動DPI來適配本系統(tǒng);步驟206、響應(yīng)期望檢查規(guī)則配置命令處理:虛擬網(wǎng)絡(luò)測試儀表模塊根據(jù)收到的響應(yīng)期望檢查規(guī)則配置命令和上一步處理中記錄的激勵包數(shù)據(jù),計(jì)算得到期望得到的響應(yīng)包數(shù)據(jù),通過DPI將期望的響應(yīng)包存入RTL的仿真測試平臺,為后續(xù)的實(shí)際響應(yīng)包和期望的響應(yīng)包之間進(jìn)行自動比較做準(zhǔn)備;如果原RTL仿真測試平臺沒有開發(fā)對應(yīng)的期望響應(yīng)包存儲DPI,則必須要添加期望響應(yīng)包存儲DPI來適配本系統(tǒng);步驟207、RTL仿真:RTL的仿真測試平臺從其DPI接口得到了激勵包數(shù)據(jù),驅(qū)動到RTL模塊的輸入接口信號上,待RTL模塊處理完成后,從RTL模塊的輸出接口信號上,得到實(shí)際的響應(yīng)包數(shù)據(jù);步驟208、比較實(shí)際響應(yīng)包與期望響應(yīng)包:RTL的仿真測試平臺內(nèi)部比較實(shí)際響應(yīng)包和期望響應(yīng)包的數(shù)據(jù),得到最終的結(jié)果,并將結(jié)果以文件的方式保存下來,供測試人員查閱。S3、參見圖6所示,在原型驗(yàn)證場景下:步驟301、系統(tǒng)初始化:設(shè)置全局配置的應(yīng)用場景為原型驗(yàn)證,配置待測芯片的模型類型及設(shè)備號,配置核心控制模塊、命令行接口模塊、SDK代理接口模塊、虛擬網(wǎng)絡(luò)測試儀表模塊的進(jìn)程標(biāo)識和設(shè)備號,先啟動服務(wù)端程序模塊,即核心控制模塊,然后啟動客戶端程序模塊,客戶端程序模塊根據(jù)全局配置中的IP地址、端口號自動創(chuàng)建與核心控制模塊之間的消息通道,SDK代理接口模塊配置在原型驗(yàn)證板的嵌入式系統(tǒng)中啟動,其余各個模塊啟動所在的位置不限,可以在一臺機(jī)器上,也可分布在多臺機(jī)器上;原型驗(yàn)證場景下的全局配置與軟硬協(xié)同仿真驗(yàn)證場景下的全局配置基本一致,差異在于將應(yīng)用場景配置變更為原型驗(yàn)證,同時(shí)SDK代理接口模塊必須要配置在原型驗(yàn)證板的嵌入式系統(tǒng)中啟動,其余模塊的啟動位置不做限定;步驟302、測試命令或腳本錄入,與步驟202相同:用戶錄入命令行接口模塊所能識別的各種命令、腳本,命令行接口模塊將命令、腳本文件轉(zhuǎn)換成為命令消息發(fā)送到核心控制模塊,命令消息包括待測芯片配置命令、激勵配置命令、響應(yīng)期望檢查規(guī)則配置命令;步驟303、測試命令轉(zhuǎn)發(fā),與步驟203相同:核心控制模塊根據(jù)收到的命令消息中的目的進(jìn)程類型和設(shè)備號,將待測芯片配置命令轉(zhuǎn)發(fā)到SDK代理接口模塊,將激勵配置命令、響應(yīng)期望檢查規(guī)則配置命令轉(zhuǎn)發(fā)到虛擬網(wǎng)絡(luò)測試儀表模塊;步驟304、待測芯片配置命令處理:SDK代理接口模塊將收到的待測芯片配置命令轉(zhuǎn)換成具體的芯片配置,調(diào)用SDK的寄存器及表項(xiàng)配置功能,完成對待測FPGA中的寄存器和表項(xiàng)進(jìn)行讀寫操作;步驟305、激勵配置命令處理:虛擬網(wǎng)絡(luò)測試儀表模塊根據(jù)收到的激勵配置命令,產(chǎn)生對應(yīng)的各種協(xié)議包數(shù)據(jù),通過調(diào)用真實(shí)網(wǎng)絡(luò)測試儀表的數(shù)據(jù)包發(fā)送功能,將包直接送到待測原型驗(yàn)證板的網(wǎng)口上面,同時(shí)記錄這些生成的激勵包數(shù)據(jù),為后續(xù)的期望包數(shù)據(jù)生成做準(zhǔn)備;步驟306、響應(yīng)期望檢查規(guī)則配置命令處理:虛擬網(wǎng)絡(luò)測試儀表模塊根據(jù)收到的響應(yīng)期望檢查規(guī)則配置命令和上一步處理中記錄的激勵包數(shù)據(jù),計(jì)算得到期望得到的響應(yīng)包數(shù)據(jù),并記錄下來,同時(shí)開啟真實(shí)網(wǎng)絡(luò)測試儀表的包抓取功能,為后續(xù)的實(shí)際響應(yīng)包和期望的響應(yīng)包之間進(jìn)行自動比較做準(zhǔn)備;步驟307、FPGA完成包處理:FPGA (待測芯片的物理實(shí)現(xiàn))通過原型驗(yàn)證板的網(wǎng)口得到了激勵包數(shù)據(jù),處理完成后發(fā)送實(shí)際的響應(yīng)包數(shù)據(jù)到原型驗(yàn)證板的網(wǎng)口,同時(shí)儀表接收到響應(yīng)包,其包抓取功能會將收到的包存入其內(nèi)部的緩存;
步驟308、比較實(shí)際響應(yīng)包與期望響應(yīng)包,虛擬網(wǎng)絡(luò)測試儀表模塊發(fā)完所有的激勵包后,調(diào)用真實(shí)網(wǎng)絡(luò)測試儀表的包抓取緩存讀取功能,從而得到實(shí)際的響應(yīng)包數(shù)據(jù),和之前記錄的期望響應(yīng)包進(jìn)行比較,得到最終的結(jié)果,并將結(jié)果以文件的方式保存下來,供測試人員查閱。本領(lǐng)域的技術(shù)人員可以對本發(fā)明實(shí)施例進(jìn)行各種修改和變型,倘若這些修改和變型屬在本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則這些修改和變型也在本發(fā)明的保護(hù)范圍之內(nèi)。說明書中未詳細(xì)描述的內(nèi)容為本領(lǐng)域技術(shù)人員公知的現(xiàn)有技術(shù)。
權(quán)利要求
1.一種分布式包交換芯片模型驗(yàn)證系統(tǒng),其特征在于:包括核心控制模塊、命令行接口模塊、SDK代理接口模塊、虛擬網(wǎng)絡(luò)測試儀表模塊、虛擬芯片配置模塊和C模型封裝模塊,其中,核心控制模塊屬于服務(wù)端程序模塊,命令行接口模塊、SDK代理接口模塊、虛擬網(wǎng)絡(luò)測試儀表模塊、虛擬芯片配置模塊和C模型封裝模塊屬于客戶端程序模塊,該驗(yàn)證系統(tǒng)屬于客戶端-服務(wù)端-客戶端C/S/C結(jié)構(gòu)的分布式系統(tǒng),同時(shí)支持3種應(yīng)用場景:系統(tǒng)功能模型驗(yàn)證、軟硬協(xié)同仿真驗(yàn)證、原型驗(yàn)證,不同的應(yīng)用場景下所需模塊不同; 核心控制模塊,用于:管理與之相連的命令行接口模塊、SDK代理接口模塊、虛擬網(wǎng)絡(luò)測試儀表模塊之間傳遞的消息,完成全局配置文件和程序模塊間專有消息的轉(zhuǎn)發(fā)、復(fù)制、廣播、分類、保存、統(tǒng)計(jì),同時(shí)維護(hù)消息通道的連接; 命令行接口模塊,用于:讀取由用戶定制的全局配置文件,根據(jù)讀取的應(yīng)用場景配置參數(shù)啟動當(dāng)前應(yīng)用場景所需的程序模塊,待C/S/C的連接初始化后,為芯片開發(fā)人員提供命令行接口,完成測試用例的定制和編輯; SDK代理接口模塊,用于:接收核心控制模塊發(fā)來的待測包交換芯片配置,根據(jù)待測包交換芯片配置調(diào)用SDK軟件,驅(qū)動待測包交換芯片的模型/原型正常運(yùn)行; 虛擬網(wǎng)絡(luò)測試儀表模塊,用于:模擬真實(shí)的網(wǎng)絡(luò)測試儀表,根據(jù)核心控制模塊轉(zhuǎn)發(fā)的待測包交換芯片測試激勵配置消息和響應(yīng)檢查配置消息,完成數(shù)據(jù)包的發(fā)送、接收、校驗(yàn)和統(tǒng)計(jì); 虛擬芯片配置模塊,僅用在系統(tǒng)功能模型驗(yàn)證應(yīng)用場景下,用于保存、更新、查詢待測包交換芯片的寄存器配置和包處理協(xié)議表項(xiàng); C模型封裝模塊,用于:讀取虛擬芯片配置模塊中的待測包交換芯片配置,接收測試模塊發(fā)來的測試激勵,將待測包交換芯片配置和測試激勵送給封裝在其內(nèi)部的包交換芯片模型處理,將該包交換芯片模型處理后的結(jié)果發(fā)送到測試模塊;C模型封裝模塊僅在系統(tǒng)功能模型驗(yàn)證應(yīng)用場景下啟用,使包交換芯片模型連接到本分布式系統(tǒng)中。
2.如權(quán)利要求1所述的分布式包交換芯片模型驗(yàn)證系統(tǒng),其特征在于:所述全局配置文件包括應(yīng)用場景、模型類型、服務(wù)端進(jìn)程配置信息和若干客戶端進(jìn)程配置信息,應(yīng)用場景設(shè)置為系統(tǒng)功能模型驗(yàn)證、軟硬協(xié)同仿真驗(yàn)證、原型驗(yàn)證中的一種,用于控制不同的應(yīng)用場景中所需程序模塊的使能及運(yùn)行方式;模型類型根據(jù)待測芯片的不同模塊的模型被設(shè)置成不同標(biāo)識,僅用在系統(tǒng)功能模型驗(yàn)證應(yīng)用場景下,C模型封裝模塊根據(jù)模型標(biāo)識動態(tài)鏈接對應(yīng)的C模型的目標(biāo)文件;服務(wù)端進(jìn)程配置信息包括IP地址、端口號、進(jìn)程類型和設(shè)備號,客戶端進(jìn)程配置信息包括進(jìn)程類型和設(shè)備號,IP地址和端口號用于創(chuàng)建服務(wù)器端程序模塊和客戶端程序模塊之間的網(wǎng)絡(luò)套接字連接,構(gòu)建程序模塊間的消息通道;進(jìn)程類型被設(shè)置成不同的進(jìn)程標(biāo)識,用于區(qū)分不同的模塊類型;在非組網(wǎng)測試中,核心控制模塊將按照進(jìn)程類型來進(jìn)行對應(yīng)的操作;設(shè)備號用于區(qū)分程序模塊測試的待測芯片,在組網(wǎng)測試中,每個待測芯片都存在唯一的設(shè)備號,在組網(wǎng)測試中,核心控制模塊將按照設(shè)備號、進(jìn)程類型來進(jìn)行對應(yīng)的操作,在非組網(wǎng)測試中,設(shè)備號被系統(tǒng)忽略。
3.如權(quán)利要求1所述的分布式包交換芯片模型驗(yàn)證系統(tǒng),其特征在于:所述程序模塊間專有消息包括6個消息域:設(shè)備號、來源進(jìn)程類型、目標(biāo)進(jìn)程類型、命令狀態(tài)、消息號、消息內(nèi)容,其中,設(shè)備號用于區(qū)分程序模塊測試的待測芯片,在組網(wǎng)測試中,每個待測芯片都存在唯一的設(shè)備號,在組網(wǎng)測試中,核心控制模塊將按照設(shè)備號、進(jìn)程類型來進(jìn)行對應(yīng)的操作,在非組網(wǎng)測試中,設(shè)備號被系統(tǒng)忽略;來源進(jìn)程類型和目標(biāo)進(jìn)程類型用于表示一個消息的來源和目標(biāo),便于核心控制模塊將按照進(jìn)程類型進(jìn)行轉(zhuǎn)發(fā),同時(shí)用于和消息號一同計(jì)算得出全局消息號;命令狀態(tài)用于表示一個消息的基本返回狀態(tài);消息號用于區(qū)分同一類程序模塊內(nèi)不同的消息,核心控制模塊根據(jù)全局消息號進(jìn)行操作;消息內(nèi)容是各個消息號對應(yīng)的具體消息內(nèi)容。
4.如權(quán)利要求3所述的分布式包交換芯片模型驗(yàn)證系統(tǒng),其特征在于:所述命令狀態(tài)包括正確返回、命令錯誤和命令超時(shí)3種狀態(tài)。
5.如權(quán)利要求3所述的分布式包交換芯片模型驗(yàn)證系統(tǒng),其特征在于:所述具體消息內(nèi)容包括子消息、字符串信息和協(xié)議報(bào)文。
6.如權(quán)利要求3所述的分布式包交換芯片模型驗(yàn)證系統(tǒng),其特征在于:每一類程序模塊內(nèi)部的消息號是獨(dú)立編號的,對于整個分布式系統(tǒng)而言,全局消息號=目標(biāo)進(jìn)程類型的全局起始消息編號+消息號。
7.如權(quán)利要求1至6中任一項(xiàng)所述的分布式包交換芯片模型驗(yàn)證系統(tǒng),其特征在于:所述測試用例支持的命令包括待測芯片配置命令、虛擬網(wǎng)絡(luò)測試儀表的激勵配置命令、響應(yīng)期望檢查規(guī)則配置命令和本分布式系統(tǒng)的調(diào)試命令。
8.如權(quán)利要求1至6中任一項(xiàng)所述的分布式包交換芯片模型驗(yàn)證系統(tǒng),其特征在于:所述核心控制模塊、命令行接口模塊、SDK代理接口模塊、虛擬網(wǎng)絡(luò)測試儀表模塊、虛擬芯片配置模塊和C模型封裝模塊分布在相同機(jī)器或不同機(jī)器上。
9.如權(quán)利要求1至6中任一項(xiàng)所述的分布式包交換芯片模型驗(yàn)證系統(tǒng),其特征在于:所述核心控制模塊、命令行接口模塊、SDK代理接口模塊、虛擬網(wǎng)絡(luò)測試儀表模塊、虛擬芯片配置模塊和C模型封裝模塊分布在相同操作系統(tǒng)或不同操作系統(tǒng)中。
10.一種基于權(quán)利要求1至9中任一項(xiàng)所述的分布式包交換芯片模型驗(yàn)證系統(tǒng)的分布式包交換芯片模型驗(yàn)證方 法,包括以下步驟: S1、在系統(tǒng)功能模型驗(yàn)證場景下: 步驟101、系統(tǒng)初始化:設(shè)置全局配置的應(yīng)用場景為系統(tǒng)功能模型驗(yàn)證,配置待測芯片的模型類型及設(shè)備號,配置核心控制模塊、命令行接口模塊、SDK代理接口模塊、虛擬網(wǎng)絡(luò)測試儀表模塊、虛擬芯片配置模塊和C模型封裝模塊的進(jìn)程標(biāo)識和設(shè)備號,先啟動核心控制模塊,然后啟動客戶端程序模塊,客戶端程序模塊根據(jù)全局配置中的IP地址、端口號自動創(chuàng)建與核心控制模塊之間的消息通道,各模塊分布在一臺或多臺機(jī)器上; 步驟102、測試命令或腳本錄入:用戶錄入命令行接口模塊所能識別的各種命令、腳本,命令行接口模塊將命令、腳本文件轉(zhuǎn)換成為命令消息發(fā)送到核心控制模塊,命令消息包括待測芯片配置命令、激勵配置命令、響應(yīng)期望檢查規(guī)則配置命令; 步驟103、測試命令轉(zhuǎn)發(fā):核心控制模塊根據(jù)收到的命令消息中的目的進(jìn)程類型和設(shè)備號,將待測芯片配置命令轉(zhuǎn)發(fā)到SDK代理接口模塊,將激勵配置命令、響應(yīng)期望檢查規(guī)則配置命令轉(zhuǎn)發(fā)到虛擬網(wǎng)絡(luò)測試儀表模塊; 步驟104、待測芯片配置命令處理:SDK代理接口模塊將收到的待測芯片配置命令轉(zhuǎn)換成具體的芯片配置,寫入/讀取虛擬芯片配置模塊中的寄存器和表項(xiàng)數(shù)據(jù),供C模型封裝模塊讀取; 步驟105、激勵配置命令處理:虛擬網(wǎng)絡(luò)測試儀表模塊根據(jù)收到的激勵配置命令,產(chǎn)生對應(yīng)的各種協(xié)議包數(shù)據(jù),并發(fā)送給C模型封裝模塊,同時(shí)記錄這些生成的激勵包數(shù)據(jù),為后續(xù)的期望包數(shù)據(jù)生成做準(zhǔn)備; 步驟106、響應(yīng)期望檢查規(guī)則配置命令處理:虛擬網(wǎng)絡(luò)測試儀表模塊根據(jù)收到的響應(yīng)期望檢查規(guī)則配置命令和步驟105中記錄的激勵包數(shù)據(jù),計(jì)算得到期望得到的響應(yīng)包數(shù)據(jù),并記錄下來,為后續(xù)的實(shí)際響應(yīng)包和期望的響應(yīng)包之間進(jìn)行自動比較做準(zhǔn)備; 步驟107、C模型封裝模塊的包處理:C模型封裝器將收到的各種激勵包數(shù)據(jù)轉(zhuǎn)換成待測芯片模型所能識別的數(shù)據(jù)結(jié)構(gòu),調(diào)用待測芯片模型的功能,得到響應(yīng)包的數(shù)據(jù)結(jié)構(gòu),轉(zhuǎn)換成虛擬網(wǎng)絡(luò)測試儀表模塊需要的響應(yīng)包消息格式,發(fā)送給虛擬網(wǎng)絡(luò)測試儀表模塊; 步驟108、比較實(shí)際響應(yīng)包與期望響應(yīng)包:虛擬網(wǎng)絡(luò)測試儀表模塊將收到的實(shí)際響應(yīng)包于之前記錄的期望響應(yīng)包進(jìn)行比較,得到最終的結(jié)果,并將結(jié)果以文件的方式保存下來,供測試人員查閱; S2、在軟硬協(xié)同仿真驗(yàn)證場景下: 步驟201、系統(tǒng)初始化:設(shè)置全局配置的應(yīng)用場景為軟硬協(xié)同仿真驗(yàn)證,配置待測芯片的模型類型及設(shè)備號,配置核心控制模塊、命令行接口模塊、SDK代理接口模塊、虛擬網(wǎng)絡(luò)測試儀表模塊的進(jìn)程標(biāo)識和設(shè)備號,先啟動核心控制模塊,然后啟動客戶端程序模塊,客戶端程序模塊根據(jù)全局配置中的IP地址、端口號自動創(chuàng)建與核心控制模塊之間的消息通道,各模塊分布在一臺或多臺機(jī)器上; 步驟202、測試命令或腳本錄入,與步驟102相同:用戶錄入命令行接口模塊所能識別的各種命令、腳本 ,命令行接口模塊將命令、腳本文件轉(zhuǎn)換成為命令消息發(fā)送到核心控制模塊,命令消息包括待測芯片配置命令、激勵配置命令、響應(yīng)期望檢查規(guī)則配置命令; 步驟203、測試命令轉(zhuǎn)發(fā),與步驟103相同:核心控制模塊根據(jù)收到的命令消息中的目的進(jìn)程類型和設(shè)備號,將待測芯片配置命令轉(zhuǎn)發(fā)到SDK代理接口模塊,將激勵配置命令、響應(yīng)期望檢查規(guī)則配置命令轉(zhuǎn)發(fā)到虛擬網(wǎng)絡(luò)測試儀表模塊; 步驟204、待測芯片配置命令處理:SDK代理接口模塊將收到的待測芯片配置命令轉(zhuǎn)換成具體的芯片配置,通過RTL仿真器提供的直接編程接口 DPI調(diào)用仿真測試平臺的寄存器及表項(xiàng)配置功能,完成對RTL中的寄存器及表項(xiàng)配置進(jìn)行讀寫操作;如果原RTL仿真測試平臺沒有開發(fā)對應(yīng)的寄存器及表項(xiàng)配置DPI,則添加寄存器及表項(xiàng)配置DPI來適配本系統(tǒng);步驟205、激勵配置命令處理:虛擬網(wǎng)絡(luò)測試儀表模塊根據(jù)收到的激勵配置命令,產(chǎn)生對應(yīng)的各種協(xié)議包數(shù)據(jù),通過DPI調(diào)用仿真測試平臺的激勵信號驅(qū)動功能,將激勵包數(shù)據(jù)驅(qū)動到待測RTL模塊的接口信號上,同時(shí)記錄這些生成的激勵包數(shù)據(jù),為后續(xù)的期望包數(shù)據(jù)生成做準(zhǔn)備;如果原RTL仿真測試平臺沒有開發(fā)對應(yīng)的激勵信號驅(qū)動DPI,則添加激勵信號驅(qū)動DPI來適配本系統(tǒng); 步驟206、響應(yīng)期望檢查規(guī)則配置命令處理:虛擬網(wǎng)絡(luò)測試儀表模塊根據(jù)收到的響應(yīng)期望檢查規(guī)則配置命令和上一步處理中記錄的激勵包數(shù)據(jù),計(jì)算得到期望得到的響應(yīng)包數(shù)據(jù),通過DPI將期望的響應(yīng)包存入RTL的仿真測試平臺,為后續(xù)的實(shí)際響應(yīng)包和期望的響應(yīng)包之間進(jìn)行自動比較做準(zhǔn)備;如果原RTL仿真測試平臺沒有開發(fā)對應(yīng)的期望響應(yīng)包存儲DPI,則添加期望響應(yīng)包存儲DPI來適配本系統(tǒng); 步驟207、RTL仿真:RTL的仿真測試平臺從其DPI接口得到激勵包數(shù)據(jù),驅(qū)動到RTL模塊的輸入接口信號上,待RTL模塊處理完成后,從RTL模塊的輸出接口信號上,得到實(shí)際的響應(yīng)包數(shù)據(jù); 步驟208、比較實(shí)際響應(yīng)包與期望響應(yīng)包:RTL的仿真測試平臺內(nèi)部比較實(shí)際響應(yīng)包和期望響應(yīng)包的數(shù)據(jù),得到最終的結(jié)果,并將結(jié)果以文件的方式保存下來,供測試人員查閱; S3、在原型驗(yàn)證場景下: 步驟301、系統(tǒng)初始化:設(shè)置全局配置的應(yīng)用場景為原型驗(yàn)證,配置待測芯片的模型類型及設(shè)備號,配置核心控制模塊、命令行接口模塊、SDK代理接口模塊、虛擬網(wǎng)絡(luò)測試儀表模塊的進(jìn)程標(biāo)識和設(shè)備號,先啟動核心控制模塊,然后啟動客戶端程序模塊,客戶端程序模塊根據(jù)全局配置中的IP地址、端口號自動創(chuàng)建與核心控制模塊之間的消息通道,SDK代理接口模塊配置在原型驗(yàn)證板的嵌入式系統(tǒng)中啟動,其余各個模塊分布在一臺或多臺機(jī)器上;步驟302、測試命令或腳本錄入,與步驟202相同:用戶錄入命令行接口模塊所能識別的各種命令、腳本,命令行接口模塊將命令、腳本文件轉(zhuǎn)換成為命令消息發(fā)送到核心控制模塊,命令消息包括待測芯片配置命令、激勵配置命令、響應(yīng)期望檢查規(guī)則配置命令; 步驟303、測試命令轉(zhuǎn)發(fā),與步驟203相同:核心控制模塊根據(jù)收到的命令消息中的目的進(jìn)程類型和設(shè)備號,將待測芯片配置命令轉(zhuǎn)發(fā)到SDK代理接口模塊,將激勵配置命令、響應(yīng)期望檢查規(guī)則配置命令轉(zhuǎn)發(fā)到虛擬網(wǎng)絡(luò)測試儀表模塊; 步驟304、待測芯片配置命令處理:SDK代理接口模塊將收到的待測芯片配置命令轉(zhuǎn)換成具體的芯片配置,調(diào)用SDK的寄存器及表項(xiàng)配置功能,完成對待測FPGA中的寄存器和表項(xiàng)進(jìn)行讀寫操作; 步驟305、激勵配置命令處理:虛擬網(wǎng)絡(luò)測試儀表模塊根據(jù)收到的激勵配置命令,產(chǎn)生對應(yīng)的各種協(xié)議包數(shù)據(jù),通過調(diào)用真實(shí)網(wǎng)絡(luò)測試儀表的數(shù)據(jù)包發(fā)送功能,將包直接送到待測原型驗(yàn)證板的網(wǎng)口上面, 同時(shí)記錄這些生成的激勵包數(shù)據(jù),為后續(xù)的期望包數(shù)據(jù)生成做準(zhǔn)備; 步驟306、響應(yīng)期望檢查規(guī)則配置命令處理:虛擬網(wǎng)絡(luò)測試儀表模塊根據(jù)收到的響應(yīng)期望檢查規(guī)則配置命令和上一步處理中記錄的激勵包數(shù)據(jù),計(jì)算得到期望得到的響應(yīng)包數(shù)據(jù),并記錄下來,同時(shí)開啟真實(shí)網(wǎng)絡(luò)測試儀表的包抓取功能,為后續(xù)的實(shí)際響應(yīng)包和期望的響應(yīng)包之間進(jìn)行自動比較做準(zhǔn)備; 步驟307、FPGA完成包處理:待測芯片的物理實(shí)現(xiàn)FPGA通過原型驗(yàn)證板的網(wǎng)口得到激勵包數(shù)據(jù),處理完成后發(fā)送實(shí)際的響應(yīng)包數(shù)據(jù)到原型驗(yàn)證板的網(wǎng)口,同時(shí)儀表接收到響應(yīng)包,將收到的包存入其內(nèi)部的緩存; 步驟308、比較實(shí)際響應(yīng)包與期望響應(yīng)包,虛擬網(wǎng)絡(luò)測試儀表模塊發(fā)完所有的激勵包后,調(diào)用真實(shí)網(wǎng)絡(luò)測試儀表的包抓取緩存讀取功能,得到實(shí)際的響應(yīng)包數(shù)據(jù),與之前記錄的期望響應(yīng)包進(jìn)行比較,得到最終的結(jié)果,并將結(jié)果以文件的方式保存下來,供測試人員查閱。
全文摘要
本發(fā)明公開了一種分布式包交換芯片模型驗(yàn)證系統(tǒng)及驗(yàn)證方法,涉及包處理芯片設(shè)計(jì)領(lǐng)域,該分布式包交換芯片模型驗(yàn)證系統(tǒng)包括核心控制模塊、命令行接口模塊、SDK代理接口模塊、虛擬網(wǎng)絡(luò)測試儀表模塊、虛擬芯片配置模塊和C模型封裝模塊,核心控制模塊為服務(wù)端程序模塊,命令行接口模塊、SDK代理接口模塊、虛擬網(wǎng)絡(luò)測試儀表模塊、虛擬芯片配置模塊和C模型封裝模塊為客戶端程序模塊,該驗(yàn)證系統(tǒng)屬于C/S/C結(jié)構(gòu)的分布式系統(tǒng),同時(shí)支持3種應(yīng)用場景系統(tǒng)功能模型驗(yàn)證、軟硬協(xié)同仿真驗(yàn)證、原型驗(yàn)證,不同的應(yīng)用場景下所需模塊不同。本發(fā)明能大幅縮短系統(tǒng)功能在不同級別的驗(yàn)證收斂時(shí)間,提高開發(fā)效率,降低調(diào)試成本。
文檔編號H04L12/26GK103178996SQ20131008380
公開日2013年6月26日 申請日期2013年3月15日 優(yōu)先權(quán)日2013年3月15日
發(fā)明者袁博滸 申請人:烽火通信科技股份有限公司