一種實現(xiàn)芯片頂層測試用例重用的方法
【技術領域】
[0001]本發(fā)明屬于片上系統(tǒng)的芯片驗證技術領域,具體涉及一種實現(xiàn)芯片頂層測試用例重用的方法;采用該方法不需要重復編寫測試代碼,亦無需要手動修改測試用例,即可實現(xiàn)測試用例的重用,有效提高了芯片頂層驗證效率。
【背景技術】
[0002]在現(xiàn)有的芯片驗證中,頂層測試用例使用C語言編寫,對寄存器的操作都是對預先定義的宏地址進行讀寫操作。根據(jù)芯片內部功能需求,某一模塊可能被例化多次,比如Nand Flash控制器(NFC)在一個芯片內被例化了兩次,分別為NFCO和NFC1,這兩個模塊實現(xiàn)的功能完全一樣,唯一不同的是它們被訪問的基地址不一樣。
[0003]現(xiàn)有技術的芯片設計中,某個模塊可能會被重復使用多次。對于同一模塊的多次重復使用,每一次使用的功能和實現(xiàn)都是一樣的,只是每次使用時在芯片中對應的基地址不一樣。因此在編寫頂層測試用例時,若分開編寫功能相同的用例,代碼冗余就會很大;若共用同一測試用例,則需要手動修改各個模塊的基地址,雖然減小了代碼冗余,但操作起來比較繁瑣,而且手動修改也容易產(chǎn)生人為誤操作。此為現(xiàn)有技術的不足之處。
[0004]因此,提供設計一種實現(xiàn)芯片頂層測試用例重用的方法是非常有必要的。
【發(fā)明內容】
[0005]本發(fā)明的目的在于,針對上述現(xiàn)有技術存在的缺陷,提供設計一種實現(xiàn)芯片頂層測試用例重用的方法,以解決上述技術問題。
[0006]為實現(xiàn)上述目的,本發(fā)明給出以下技術方案:
一種實現(xiàn)芯片頂層測試用例重用的方法,包括如下步驟:
51:運行上層命令腳本;該步驟包括:
5101:設置通用頭文件“nfc_define.h”中define的默認值;
5102:判斷待測試模塊是否為SI中define的默認值所指代的默認測試用例,如果是則轉到步驟S104,否則轉到步驟S103 ;
5103:指定在通用頭文件“nfc_define.h”中需要使用的define值,以決定所測試的用例;
5104:將define中的值傳遞到測試用例腳本;
52:運行測試用例處理腳本,該步驟包括:
S201:根據(jù)測試用例的名字以及define的參數(shù),準備測試用文件;
53:運行產(chǎn)生特定頭文件的腳本,包括如下步驟:
S301:根據(jù)步驟S103中指定的define值,將通用頭文件修改成特定頭文件。
[0007]優(yōu)選地,所述步驟SlOl中define的默認值為NFC0。
[0008]優(yōu)選地,所述步驟S103中,將默認的define值替換為需要使用的define值。
[0009]優(yōu)選地,所述步驟S103中,將默認的define值替換為需要使用的define值的語句為:“+define+NFC0=0 +def ine+NFCX=X”,其中,X指代待檢測用例的相應編號。
[0010]本發(fā)明的有益效果在于,本方法不需要重復編寫測試代碼,也不需要手動修改測試用例,即可實現(xiàn)測試用例的重用以及驗證的自動化執(zhí)行,有效提高了芯片頂層驗證效率。此外,本發(fā)明設計原理可靠,具有非常廣泛的應用前景。
[0011]由此可見,本發(fā)明與現(xiàn)有技術相比,具有突出的實質性特點和顯著地進步,其實施的有益效果也是顯而易見的。
【具體實施方式】
[0012]下面通過具體實施例對本發(fā)明進行詳細闡述,以下實施例是對本發(fā)明的解釋,而本發(fā)明并不局限于以下實施方式。
[0013]本發(fā)明提供了一種實現(xiàn)芯片頂層測試用例重用的方法,包括如下步驟:
51:運行上層命令腳本;該步驟包括:
5101:設置通用頭文件“nfc_define.h”中define的默認值;
5102:判斷待測試模塊是否為SI中define的默認值所指代的默認測試用例,如果是則轉到步驟S104,否則轉到步驟S103 ;
5103:指定在通用頭文件“nfc_define.h”中需要使用的define值,以決定所測試的用例;
5104:將define中的值傳遞到測試用例腳本;
52:運行測試用例處理腳本,該步驟包括:
S201:根據(jù)測試用例的名字以及define的參數(shù),準備測試用文件;
53:運行產(chǎn)生特定頭文件的腳本,包括如下步驟:
S301:根據(jù)步驟S103中指定的define值,將通用頭文件修改成特定頭文件。
[0014]本實施例中,所述步驟SlOl中define的默認值為NFC0。
[0015]本實施例中,所述步驟S103中,將默認的define值替換為需要使用的define值。
[0016]本實施例中,所述步驟S103中,將默認的define值替換為需要使用的define值的語句為:“+define+NFC0=0 +define+NFCX=X”,其中,X指代待檢測用例的相應編號。
[0017]本實施例中,以NFCO以及NFCl為例給出三個腳本的運行具體步驟以及代碼。
[0018]步驟:
I)運行上層命令腳本:該腳本執(zhí)行時會指定在通用頭文件“nfc_define.h”中需要使用的define值,從而決定將要測試哪個模塊。默認的define值為NFC0,即測試的模塊為NFC0。若要測試模塊NFC1,則在運行該上層命令腳本時需要指定“+define+NFC0=0+define+NFCl=r’。在該腳本中會自動調用測試用例處理腳本。
[0019]2)運行測試用例處理腳本:該腳本為所有測試用例共用的腳本。該腳本根據(jù)測試用例的名字以及上層命令腳本傳遞進來的define參數(shù),為運行特定測試用例準備相關文件。在該腳本中會自動調用產(chǎn)生特定頭文件的腳本。
[0020]3)運行產(chǎn)生特定頭文件的腳本:該腳本根據(jù)上層命令腳本傳遞來的define值,把通用頭文件自動修改成特定頭文件。還是以NFC模塊測試為例,當在上層命令腳本中指定了 “+define+NFC0=0 +def ine+NFCl=l ”時,產(chǎn)生特定頭文件的腳本就會自動把“nfc_define, h”頭文件中的“#define NFC0”刪除掉,同時在“nfc_define.h”頭文件中增加定義“#define NFC1”,這樣測試用例操作的地址就不再是NFCO的寄存器地址,而是換成了 NFCl的寄存器地址,從而就能對模塊NFCl進行測試了。
[0021]代碼:
“nfc.c,,
wr_addr(NFC_SETTING) = 0x000148c0;wr_addr(NFC_CTRL ) = OxOOOOffOO;
“nfc_define.h,,
#ifndef _H#define _H#define NFCO
#define NFC0_SETTING 0x10000000 #define NFC0_CTRL0x10000004
#define NFC1_SETTING OxlOaOOOOO #define NFC1_CTRL0xl0a00004
#ifdef NFCO
#define NFC_SETTING NFC0_SETTING #define NFC_CTRL NFC0_CTRL
#endif#ifdef NFCl
#define NFC_SETTING NFC1_SETTING #define NFC_CTRL NFC1_CTRL
#endif
#endif
以上公開的僅為本發(fā)明的優(yōu)選實施方式,但本發(fā)明并非局限于此,任何本領域的技術人員能思之的沒有創(chuàng)造性的變化,以及在不脫離本發(fā)明原理前提下所作的若干改進和潤飾,都應落在本發(fā)明的保護范圍內。
【主權項】
1.一種實現(xiàn)芯片頂層測試用例重用的方法,包括如下步驟: 51:運行上層命令腳本;該步驟包括: 5101:設置通用頭文件“nfc_define.h”中define的默認值; 5102:判斷待測試模塊是否為SI中define的默認值所指代的默認測試用例,如果是則轉到步驟S104,否則轉到步驟S103 ; 5103:指定在通用頭文件“nfc_define.h”中需要使用的define值,以決定所測試的用例; 5104:將define中的值傳遞到測試用例腳本; 52:運行測試用例處理腳本,該步驟包括: S201:根據(jù)測試用例的名字以及define的參數(shù),準備測試用文件; 53:運行產(chǎn)生特定頭文件的腳本,包括如下步驟: S301:根據(jù)步驟S103中指定的define值,將通用頭文件修改成特定頭文件。
2.根據(jù)權利要求1所述的一種實現(xiàn)芯片頂層測試用例重用的方法,其特征在于:所述步驟SlOl中define的默認值為NFC0。
3.根據(jù)權利要求1或2所述的一種實現(xiàn)芯片頂層測試用例重用的方法,其特征在于:所述步驟S103中,將默認的define值替換為需要使用的define值。
4.根據(jù)權利要求3所述的一種實現(xiàn)芯片頂層測試用例重用的方法,其特征在于:所述步驟S103中,將默認的define值替換為需要使用的define值的語句為:“+define+NFC0=0+define+NFCX=X”,其中,X指代待檢測用例的相應編號。
【專利摘要】本發(fā)明涉及一種實現(xiàn)芯片頂層測試用例重用的方法,包括如下步驟:S101:設置通用頭文件“nfc_define.h”中define的默認值;S102:判斷待測試模塊是否為S1中define的默認值所指代的默認測試用例,如果是則轉到步驟S104,否則轉到步驟S103;S103:指定在通用頭文件“nfc_define.h”中需要使用的define值,以決定所測試的用例;S104:將define中的值傳遞到測試用例腳本;S201:根據(jù)測試用例的名字以及define的參數(shù),準備測試用文件;S301:根據(jù)步驟S103中指定的define值,將通用頭文件修改成特定頭文件。
【IPC分類】G01R31-28
【公開號】CN104698368
【申請?zhí)枴緾N201510149666
【發(fā)明人】姚香君, 戴紹新, 李風志, 楊萌
【申請人】山東華芯半導體有限公司
【公開日】2015年6月10日
【申請日】2015年4月1日