Soc芯片的測試方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及測試驗(yàn)證領(lǐng)域,更具體地涉及一種S0C芯片的測試方法及測試系統(tǒng)。
【背景技術(shù)】
[0002]S0C芯片設(shè)計(jì)完后最重要的環(huán)節(jié)在于驗(yàn)證,驗(yàn)證的主要任務(wù)是確保S0C芯片符合設(shè)計(jì)要求,保證設(shè)計(jì)的正確性。
[0003]在小規(guī)模S0C芯片的驗(yàn)證方法中,基本上都是先設(shè)定固定的場景,再在固定場景中產(chǎn)生激勵(lì)信號(hào),再將激勵(lì)信號(hào)直接灌入進(jìn)DUT (待測設(shè)備)中,然后通過芯片端口來檢查芯片功能是否正確。這種直接向量測試(Direct Vector Test)運(yùn)用在小的系統(tǒng)的中,能獲得不錯(cuò)的覆蓋率。
[0004]而在中大規(guī)模S0C芯片的驗(yàn)證方法中,目前常用的驗(yàn)證方法是VMM (Verificat1nMethodology Manual)。它是一種事務(wù)級(jí)(Transact1n Level)的驗(yàn)證方法。VMM驗(yàn)證系統(tǒng)的架構(gòu)如圖1所示,通過配置生成器和驅(qū)動(dòng)器的約束條件來約束生成器產(chǎn)生測試數(shù)據(jù),然后將測試數(shù)據(jù)灌入DUT中,并通過檢查器對(duì)結(jié)果進(jìn)行自動(dòng)比較。VMM驗(yàn)證方法可以實(shí)現(xiàn)受約束的隨機(jī)驗(yàn)證(CRV,Constrained Random Verificat1n)。CRV是一種在設(shè)定的約束條件下進(jìn)行隨機(jī)的方法,它可以覆蓋很多測試案例,特別是直接向量測試不能包含的那些意外的測試案例。測試結(jié)束的條件是以覆蓋率檢查器輸出的覆蓋率來確定的。當(dāng)功能覆蓋率、代碼覆蓋率均達(dá)到測試開始前設(shè)定的閾值以后停止隨機(jī)驗(yàn)證。在自動(dòng)比較過程中,如果遇到錯(cuò)誤,則會(huì)在輸出測試文件中打印出錯(cuò)誤信息并停止仿真。VMM驗(yàn)證方法由于采用了繼承基類的方式來擴(kuò)展事務(wù),所以VMM驗(yàn)證方法具有很好的移植性。而且可以在測試結(jié)果文件中實(shí)時(shí)地查看當(dāng)前仿真進(jìn)度。VMM驗(yàn)證方法實(shí)現(xiàn)了驗(yàn)證方法從信號(hào)級(jí)向事務(wù)級(jí)的轉(zhuǎn)變,這大大簡易了中大規(guī)模的S0C芯片的驗(yàn)證。
[0005]但是,直接向量測試(direct vector test)驗(yàn)證方法要求事先必須設(shè)計(jì)出芯片的各種工作場景,驗(yàn)證人員需要直接處理非常低層次的信號(hào)級(jí)信息。采用這種驗(yàn)證方法,驗(yàn)證人員工作量很大,并且一些意外場景、錯(cuò)誤處理場景不可能一一考慮和驗(yàn)證到,很容易導(dǎo)致驗(yàn)證不全面。而VMM驗(yàn)證方法的數(shù)據(jù)交互和控制比較復(fù)雜,對(duì)多媒體芯片來說,操作待驗(yàn)證S0C芯片的方法相當(dāng)復(fù)雜,不方便控制仿真流程,易用性低,而且因?yàn)槠錈o法加入設(shè)備驅(qū)動(dòng),故無法驗(yàn)證復(fù)雜的應(yīng)用場景和升級(jí)成系統(tǒng)級(jí)驗(yàn)證。
[0006]因此,有必要提供一種改進(jìn)的S0C芯片測試方法來克服上述缺陷。
【發(fā)明內(nèi)容】
[0007]本發(fā)明的目的是提供一種S0C芯片的測試方法,本發(fā)明的S0C芯片的測試方法能夠很好地幫助驗(yàn)證工程師針對(duì)S0C芯片進(jìn)行測試驗(yàn)證。在本發(fā)明實(shí)施例中驗(yàn)證工程師并不需要了解底層硬件的具體實(shí)施,驗(yàn)證工程師所編寫的系統(tǒng)測試程序能夠很好地移植到其它項(xiàng)目中,簡化了測試過程,通用性強(qiáng)。
[0008]為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種S0C芯片的測試方法,其包括以下步驟:a.編寫對(duì)應(yīng)的測試程序,并初始化測試環(huán)境;b.加載測試程序至中央處理器;C.測試數(shù)據(jù)發(fā)生器根據(jù)加載的測試程序在系統(tǒng)函數(shù)庫中調(diào)用對(duì)應(yīng)的系統(tǒng)函數(shù)并生成測試事務(wù)列表;d.根據(jù)事務(wù)列表測試待測SOC芯片判斷待測SOC芯片的測試覆蓋率。
[0009]較佳地,所述步驟初始化測試環(huán)境具體為,根據(jù)設(shè)計(jì)文檔和USB3.0協(xié)議初始化待測S0C芯片中的寄存器,且根據(jù)設(shè)計(jì)文檔和USB3.0協(xié)議配置測試程序的描述符。
[0010]較佳地,所述描述符包括系統(tǒng)描述符、設(shè)備描述符及中斷描述符。
[0011]較佳地,所述測試程序內(nèi)的變量名及函數(shù)名的命名規(guī)則符合統(tǒng)一的規(guī)則。
[0012]較佳地,所述統(tǒng)一的規(guī)則包括微軟命名規(guī)則與linux命名規(guī)則。
[0013]較佳地,所述測試事務(wù)列表為能被VMM結(jié)構(gòu)的功能層識(shí)別的事務(wù)列表。
[0014]較佳地,在所述中央處理器內(nèi)預(yù)設(shè)有設(shè)定閾值,所述步驟判斷待測S0C芯片的測試覆蓋率具體為:當(dāng)覆蓋率小于設(shè)定閾值時(shí)重復(fù)步驟b-d ;當(dāng)覆蓋率大于或等于設(shè)定閾值時(shí),結(jié)束測試。
[0015]較佳地,所述測試程序、系統(tǒng)函數(shù)庫均預(yù)先存儲(chǔ)于一固定存儲(chǔ)設(shè)備中。
[0016]與現(xiàn)有技術(shù)相比,本發(fā)明的S0C芯片的測試方法由于采用了抽象化的事物列表來隨機(jī)產(chǎn)生測試數(shù)據(jù)能夠很好地幫助驗(yàn)證工程師針對(duì)S0C設(shè)計(jì)系統(tǒng)進(jìn)行驗(yàn)證,驗(yàn)證工程師可以用靈活的高級(jí)語言如C/C++來編寫測試程序,且在本發(fā)明實(shí)施例中驗(yàn)證工程師并不需要了解底層硬件的具體實(shí)施,從而驗(yàn)證工程師所編寫的測試程序能夠很好地移植到其它項(xiàng)目中。
[0017]通過以下的描述并結(jié)合附圖,本發(fā)明將變得更加清晰,這些附圖用于解釋本發(fā)明的實(shí)施例。
【附圖說明】
[0018]圖1為本發(fā)明S0C芯片的測試方法的流程圖。
【具體實(shí)施方式】
[0019]現(xiàn)在參考附圖描述本發(fā)明的實(shí)施例,附圖中類似的元件標(biāo)號(hào)代表類似的元件。如上所述,本發(fā)明提供了一種S0C芯片的測試方法,本發(fā)明的S0C芯片的測試方法能夠很好地幫助驗(yàn)證工程師針對(duì)S0C芯片進(jìn)行測試驗(yàn)證。在本發(fā)明實(shí)施例中驗(yàn)證工程師并不需要了解底層硬件的具體實(shí)施,驗(yàn)證工程師所編寫的系統(tǒng)測試程序能夠很好地移植到其它項(xiàng)目中,簡化了測試過程,通用性強(qiáng)。
[0020]請(qǐng)參考圖1,圖1為本發(fā)明S0C芯片的測試方法的流程圖,如圖所示,本發(fā)明SOCK片的測試方法具體包括如下步驟:
[0021]步驟S101,編寫對(duì)應(yīng)的測試程序,并初始化測試環(huán)境;在本步驟中,始化測試環(huán)境具體為:根據(jù)設(shè)計(jì)文檔和USB3.0協(xié)議初始化待測S0C芯片中的寄存器,且根據(jù)設(shè)計(jì)文檔和USB3.0協(xié)議配置測試程序的描述符,以為后續(xù)測試步驟做準(zhǔn)備。其中,所述描述符包括系統(tǒng)描述符、設(shè)備描述符及中斷描述符,當(dāng)然在本發(fā)明的【具體實(shí)施方式】中,并不限于這幾類描述符,其它可能用到的描述符均需進(jìn)行配置。另外,所述測試程序內(nèi)的變量名、函數(shù)名的命名規(guī)則符合統(tǒng)一的規(guī)則,所述統(tǒng)一的規(guī)則包括微軟命名規(guī)則、linux命名規(guī)則;也即是,所述測試程序內(nèi)的變量名、函數(shù)名的命名規(guī)則均符合微軟命名規(guī)則,或均符合linux命名規(guī)則,以保證系統(tǒng)函數(shù)配置器能夠準(zhǔn)確的調(diào)用系統(tǒng)函數(shù);再有,所述設(shè)計(jì)文檔是指對(duì)待測SOC芯片進(jìn)行測試的具體項(xiàng)目,該測試的具體項(xiàng)目在測試之前已編輯好并生成所述設(shè)計(jì)文檔。
[0022]步驟S102,加載測試程序至中央處理器;在本步驟中,所述中央處理器根據(jù)加載的測試程序而產(chǎn)生相應(yīng)的測試命令,并將所述測試命令發(fā)送至待測S0C芯片,以在后續(xù)步驟中對(duì)待測S0C進(jìn)行測試;其中,在所述中央處理器內(nèi)預(yù)設(shè)有設(shè)定閾值;所述設(shè)定閾值的取值可以根據(jù)具體的待測S0C芯片而設(shè)定,以便于測試不同的S0C芯片。
[0023]步驟S103,測試數(shù)據(jù)發(fā)生器根據(jù)加載的測試程序在系統(tǒng)函數(shù)庫中調(diào)用對(duì)應(yīng)的系統(tǒng)函數(shù)并生成測試事務(wù)列表;在本步驟中,將隨機(jī)組合測試命令,產(chǎn)生事物列表;所述測試事務(wù)列表為能被VMM結(jié)構(gòu)的功能層識(shí)別的事務(wù)列表。且,其中,所述測試程序、系統(tǒng)函數(shù)庫均預(yù)先存儲(chǔ)于一固定存儲(chǔ)設(shè)備中。
[0024]步驟S104,根據(jù)事務(wù)列表測試待測S0C芯片;在本步驟中,所述事務(wù)列表中還包括有測試順序,其中,測試順序包括:順序執(zhí)行、倒序執(zhí)行及隨機(jī)執(zhí)行;在運(yùn)行動(dòng)作測試列表時(shí),具體是按順序執(zhí)行、倒序執(zhí)行還是隨機(jī)執(zhí)行可由測試人員在測試開始前進(jìn)行指定。
[0025]步驟S105,判斷待測S0C芯片的測試覆蓋率;在本步驟中,當(dāng)判斷測試覆蓋率小于設(shè)定閾值時(shí)重復(fù)執(zhí)行步驟S102-S104,直到測試覆蓋率大于或等于設(shè)定閾值;而當(dāng)判測試斷覆蓋率大于或等于設(shè)定閾值時(shí),結(jié)束測試;從而保證了測試的覆蓋率達(dá)到設(shè)定目標(biāo),以確保測試的準(zhǔn)確性。
[0026]本發(fā)明的S0C芯片的測試方法由于采用了抽象化的事物列表來隨機(jī)產(chǎn)生測試數(shù)據(jù)能夠很好地幫助驗(yàn)證工程師針對(duì)S0C設(shè)計(jì)系統(tǒng)進(jìn)行驗(yàn)證,驗(yàn)證工程師可以用靈活的高級(jí)語言如C/C++來編寫測試程序,且在本發(fā)明實(shí)施例中驗(yàn)證工程師并不需要了解底層硬件的具體實(shí)施,從而驗(yàn)證工程師所編寫的測試程序能夠很好地移植到其它項(xiàng)目中,簡化了測試過程,通用性強(qiáng);而且當(dāng)測試覆蓋率達(dá)不到設(shè)定閾值時(shí),將反復(fù)對(duì)待測S0C芯片進(jìn)行測試,保證了測試的準(zhǔn)確性。
[0027]以上結(jié)合最佳實(shí)施例對(duì)本發(fā)明進(jìn)行了描述,但本發(fā)明并不局限于以上揭示的實(shí)施例,而應(yīng)當(dāng)涵蓋各種根據(jù)本發(fā)明的本質(zhì)進(jìn)行的修改、等效組合。
【主權(quán)項(xiàng)】
1.一種SOC芯片的測試方法,其特征在于,包括以下步驟: a.編寫對(duì)應(yīng)的測試程序,并初始化測試環(huán)境; b.加載測試程序至中央處理器; c.測試數(shù)據(jù)發(fā)生器根據(jù)加載的測試程序在系統(tǒng)函數(shù)庫中調(diào)用對(duì)應(yīng)的系統(tǒng)函數(shù)并生成測試事務(wù)列表; d.根據(jù)事務(wù)列表測試待測S0C芯片; e.判斷待測S0C芯片的測試覆蓋率。2.如權(quán)利要求1所述的S0C芯片的測試方法,其特征在于,所述步驟初始化測試環(huán)境具體為,根據(jù)設(shè)計(jì)文檔和USB3.0協(xié)議初始化待測S0C芯片中的寄存器,且根據(jù)設(shè)計(jì)文檔和USB3.0協(xié)議配置測試程序的描述符。3.如權(quán)利要求2所述的S0C芯片的測試方法,其特征在于,所述描述符包括系統(tǒng)描述符、設(shè)備描述符及中斷描述符。4.如權(quán)利要求1所述的S0C芯片的測試方法,其特征在于,所述測試程序內(nèi)的變量名及函數(shù)名的命名規(guī)則符合統(tǒng)一的規(guī)則。5.如權(quán)利要求4所述的S0C芯片的測試方法,其特征在于,所述統(tǒng)一的規(guī)則包括微軟命名規(guī)則與1 inux命名規(guī)則。6.如權(quán)利要求1所述的S0C芯片的測試方法,其特征在于,所述測試事務(wù)列表為能被VMM結(jié)構(gòu)的功能層識(shí)別的事務(wù)列表。7.如權(quán)利要求1所述的S0C芯片的測試方法,其特征在于,在所述中央處理器內(nèi)預(yù)設(shè)有設(shè)定閾值,所述步驟判斷待測S0C芯片的測試覆蓋率具體為: 當(dāng)覆蓋率小于設(shè)定閾值時(shí)重復(fù)步驟b-d ; 當(dāng)覆蓋率大于或等于設(shè)定閾值時(shí),結(jié)束測試。8.如權(quán)利要求1所述的S0C芯片的測試方法,其特征在于,所述測試程序、系統(tǒng)函數(shù)庫均預(yù)先存儲(chǔ)于一固定存儲(chǔ)設(shè)備中。
【專利摘要】本發(fā)明公開了一種SOC芯片的測試方法,其包括以下步驟:a.編寫對(duì)應(yīng)的測試程序,并初始化測試環(huán)境;b.加載測試程序至中央處理器;c.測試數(shù)據(jù)發(fā)生器根據(jù)加載的測試程序在系統(tǒng)函數(shù)庫中調(diào)用對(duì)應(yīng)的系統(tǒng)函數(shù)并生成測試事務(wù)列表;d.根據(jù)事務(wù)列表測試待測SOC芯片;e.判斷待測SOC芯片的測試覆蓋率。本發(fā)明的SOC芯片的測試方法能夠很好地幫助驗(yàn)證工程師針對(duì)SOC芯片進(jìn)行測試驗(yàn)證。在本發(fā)明實(shí)施例中驗(yàn)證工程師并不需要了解底層硬件的具體實(shí)施,驗(yàn)證工程師所編寫的系統(tǒng)測試程序能夠很好地移植到其它項(xiàng)目中,簡化了測試過程,通用性強(qiáng)。
【IPC分類】G01R31/28
【公開號(hào)】CN105301480
【申請(qǐng)?zhí)枴緾N201510800344
【發(fā)明人】舒鵬
【申請(qǐng)人】四川和芯微電子股份有限公司
【公開日】2016年2月3日
【申請(qǐng)日】2015年11月19日