專利名稱::功能覆蓋率的收集方法及裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及軟件驗證
技術(shù)領(lǐng)域:
,尤其涉及一種功能覆蓋率的收集方法及裝置。
背景技術(shù):
:功能覆蓋率是度量芯片驗證質(zhì)量的量化指標。按照面向Implementation(實現(xiàn))還是面向Specification(說明)來劃分,可以將現(xiàn)有的功能覆蓋率收集方法分為以下兩種1)面向Implementation的功能覆蓋率的收集方法,例如,斷言功能覆蓋率的收集方法,參考模型(ReferenceModel,RM)功能路徑覆蓋率的收集方法。2)面向Specification的功能覆蓋率的收集方法,例如,傳統(tǒng)的驗證規(guī)格覆蓋率的收集方法。上述各種功能覆蓋率的收集方法,分別針對不同的收集對象,借用各種有效的收集手段,從各個角度對驗證空間的覆蓋效果進行了描述。其中,斷言功能覆蓋率的收集方法是從RTL(registertransferlevel,寄存器傳輸級)實現(xiàn)的角度描述芯片功能的,RM功能路徑覆蓋率的收集方法是從參考模型實現(xiàn)的角度描述芯片功能,而傳統(tǒng)的驗證規(guī)格覆蓋率的收集方法是從驗證規(guī)格的角度描述芯片功能。對于實現(xiàn)過程比較簡單的功能,直接用驗證規(guī)格就可以基本完成驗證空間的界定,這種情況下較多使用傳統(tǒng)的驗證規(guī)格覆蓋率的收集方法;對于實現(xiàn)過程比較復雜的功能,僅僅站在驗證規(guī)格的層面上,有^f艮多驗證細節(jié)無法提取出來,這時必須依靠對設(shè)計實現(xiàn)過程的分析和分解,來完成驗證空間的構(gòu)建,因此需要將驗證規(guī)格覆蓋率的收集方法,與斷言功能覆蓋率的收集方法或RM功能路徑覆蓋率的收集方法結(jié)合起來,以充分描述驗證空間的范圍。面向Implementation的功能覆蓋率的收集方法,直接從編碼中提取功能信息,其最直接的表現(xiàn)就是覆蓋率定義的內(nèi)容與設(shè)計實現(xiàn)過程強相關(guān)。這類方法的優(yōu)點是,可以根據(jù)實現(xiàn)細節(jié)對驗證空間進行充分細化,保證測試點分解的粒度達到最小化要求。受實際操作手段的限制,在利用斷言功能覆蓋率的收集方法時,驗證人員往往不方便直接在RTL代碼中添加斷言功能覆蓋率收集語句,而設(shè)計人員又沒有足夠的時間和精力完成斷言覆蓋收集。目前面向Implementation的功能覆蓋率的收集方法中主要采用RM功能路徑覆蓋率的收集方法。利用RM功能路徑覆蓋率的收集方法,驗證人員可以在自己重新開發(fā)或部分重用的參考模型代碼里,根據(jù)器件功能要求,添加適當?shù)墓δ苈窂礁采w率收集語句(探針和節(jié)點),在回歸用例的同時完成功能覆蓋率收集。如圖1所示,變量A、B、C及D中,變量A、B、D均可有兩種取值,因此,在驗證流程中可能會出現(xiàn)兩種分支;而變量C可有三種取值,相應(yīng)的就形成了三種分支。因此,在利用RM功能路徑覆蓋率的收集方法時,可在變量A、B、C及D相應(yīng)的分支處設(shè)置探針。那么,在對該流程中各個路徑的功能覆蓋率進行收集的時候,按照表l中列舉的方式進行。表l序號處理路徑探針1開始-Pl-P3-結(jié)束P32開始-P1-P4-結(jié)束P43開始-P2-P5-結(jié)束P54開始-P2-P6-P8-結(jié)束P8(1)5開始-P2-P6-P9-結(jié)束P9(1)<table>tableseeoriginaldocumentpage7</column></row><table>由上可以看出,該方法充分利用了Powerbench提供的自動收集工具,將收集數(shù)據(jù)與統(tǒng)計過程交給收集工具完成,用戶只需要進行覆蓋率定義語句的插入就可以實現(xiàn)對功能覆蓋率的收集。該方法較好地提高了功能覆蓋率收集效率,減輕了驗證人員進行功能覆蓋率設(shè)計的工作量。但是,在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)RM功能路徑覆蓋率的收集方法對于參考模型代碼語句結(jié)構(gòu)比較復雜,例如交雜了循環(huán)、分支、多層子功能調(diào)用等結(jié)構(gòu)的情況下,"節(jié)點+探針"組合有時無法充分滿足功能覆蓋率定義的需求。利用RM功能路徑覆蓋率的收集方法降低了功能覆蓋率收集的靈活性。另外,在灰盒設(shè)計驗證架構(gòu)下,需要在從模塊級到系統(tǒng)級集成時,考慮功能覆蓋率收集語句的重用,以減少系統(tǒng)功能覆蓋率收集過程中的重復勞動。而RM功能路徑覆蓋率的收集方法,只能針對單個模塊完成覆蓋率的收集,比較難以對來自同一報文的多個模塊的功能覆蓋率進行收集。
發(fā)明內(nèi)容一方面,本發(fā)明實施例提供了一種參考模型功能覆蓋率的收集方法,以提高對功能覆蓋率進行收集時的靈活性,并提高收集效率。本發(fā)明實施例參考模型功能覆蓋率的收集方法采用以下技術(shù)方案一種功能覆蓋率的收集方法,包括如下步驟為參考模型中的處理路徑設(shè)置可驗證性標識;獲取輸入的驗證數(shù)據(jù);對所述驗證數(shù)據(jù)進行處理,獲取處理所述驗證數(shù)據(jù)的處理路徑的可驗證性標識;根據(jù)所述處理驗證數(shù)據(jù)的處理路徑的可驗證性標識,統(tǒng)計參考模型的功能覆蓋率。另一方面,本發(fā)明實施例還提供了一種參考模型功能覆蓋率的收集裝置,以提高對功能覆蓋率進行收集時的靈活性,并提高收集效率。本發(fā)明實施例參考模型功能覆蓋率的收集裝置采用以下技術(shù)方案一種功能覆蓋率的收集裝置,包括標識設(shè)置單元,用于為參考模型中的處理路徑設(shè)置可驗證性標識;數(shù)據(jù)獲取單元,用于獲取輸入的驗證數(shù)據(jù);標識獲取單元,用于對所述驗證數(shù)據(jù)進行處理,獲取處理所述驗證數(shù)據(jù)的處理路徑的可驗i正性標識;功能覆蓋率統(tǒng)計單元,用于根據(jù)所述處理驗證數(shù)據(jù)的處理路徑的可驗證性標識,統(tǒng)計參考模型的功能覆蓋率。利用本發(fā)明實施例功能覆蓋率的收集方法及裝置,首先為參考模型中的處理路徑設(shè)置可^^證性標識,然后在運行參考模型時,通過收集處理驗證數(shù)據(jù)的處理路徑的可驗證性標識,來判斷參考模型中各處理路徑的執(zhí)行情況,從而統(tǒng)計出參考模型的功能覆蓋率。因此,與現(xiàn)有技術(shù)相比,本發(fā)明實施例在保證了功能覆蓋率收集的效率的同時,也提高了功能覆蓋率收集的靈活性。為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖l是現(xiàn)有技術(shù)中利用RM功能路徑覆蓋率的收集方法進行功能覆蓋率收集的示意圖2是本發(fā)明實施例功能覆蓋率收集方法的流程圖;圖3是本發(fā)明實施例功能覆蓋率收集裝置的結(jié)構(gòu)圖;圖4是本發(fā)明實施例功能覆蓋率收集裝置的示意圖。具體實施例方式為使本發(fā)明實施例的技術(shù)方案的優(yōu)點更加清楚,下面結(jié)合附圖對本發(fā)明的實施例作進一步的詳細i兌明。如圖2所示,本發(fā)明實施例功能覆蓋率的收集方法包括以下步驟步驟201、為參考模型中的處理路徑設(shè)置可驗證性標識;為參考模型中的處理路徑設(shè)置可驗證性標識的過程,可按照如下方式進行按照參考模型中各功能模塊的層級關(guān)系,將各功能模塊分級成N個等級的功能模塊,其中N為大于等于1的整數(shù);以最頂層功能模塊為根節(jié)點,建立所述最頂層功能模塊下的各層級功能模塊與所述最頂層功能模塊的位置關(guān)系利用所述位置關(guān)系,標識參考模型中的處理路徑。其中,所述的位置關(guān)系可以用一個樹狀結(jié)構(gòu)表示。例如,若按照參考模型中各功能模塊的層級關(guān)系,將各功能模塊劃分為2個等級。令最頂層的功能模塊的等級用l表示,在這個最頂層的功能模塊下有兩個子模塊,分別用20和21表示其等級。那么這兩個子模塊的路徑信息可表示為1->20,1->21。那么,就可用1-〉20,1->21來代表這兩個子模塊所對應(yīng)的處理路徑。當然,還可用其他方式表示為參考模型中的處理路徑設(shè)置的標識。在具體應(yīng)用中,可根據(jù)具體的驗證環(huán)境,利用不同的方式為參考模型中的處理路徑設(shè)置可驗證性標識。例如,在黑盒驗證環(huán)境中,可按照驗證特性將處理流程劃分成至少兩個大的分段,每個分段對應(yīng)一個0++函數(shù),并為其分配一個模塊號module—num,在該分段內(nèi)部的分支函數(shù),可為其分配一個分支模塊號sub-module-num。在灰盒驗證環(huán)境中,可為每個一級才莫塊分配給一個才莫塊號module—num,并對應(yīng)一個0++函數(shù),為該一級模塊內(nèi)部的分支函數(shù)分配一個分支模塊號sub_module—num。對于每組分支函數(shù)內(nèi)的單一處理路徑,可用Routlnfo[module_num][sub一module-num]開j式表示其路徑信息。屬于不同的module—num或sub—module—num下的3各徑,Routlnfo的取^直可以重復。例々口,可按照如下的方式,為處理路徑設(shè)置可驗證性標識。intFunction-AA()〃一級才莫塊AA頂層函凄tmodule-num=3;〃一級才莫塊編號sub—module—num=21;〃二級才莫塊編號,對應(yīng)var_g判斷下的一組分支集合if((var_g==1)&&(var_h>399)&&(var—k!=765))rslt—u-0;Routlnfo[module_num][sub—module—num]=10;〃最底層分支編號elserslt_u=1;Routlnfo[module_num][sub—module—num]=11;〃最底層分支編號sub—module—num=24;〃二級才莫塊編號,7于應(yīng)var_x判斷下的一組分支集合switch(var—x)case10:rslt-v=2;Routlnfo[module—num][sub一module—num〗=10;//最底層分支編號break;case11:rslt—v=3;Routlnfo[module—num][sub-module—num]=11;〃最底層分支編號break;default:rslt-v=25;Routlnfo[module—num][sub—module—num]=30;〃最底層分支編號break;步驟202、獲取輸入的驗證數(shù)據(jù);步驟203、對所述驗證數(shù)據(jù)進行處理,獲取處理所述驗證數(shù)據(jù)的處理路徑的可-瞼i正性一示識;此步驟可按照如下方式實現(xiàn)首先對所述參考模型進行預期分析,然后通果。在對參考^t型進行預期分析的過程中,當輸入某個-驗證數(shù)據(jù)的時候,除了能夠獲得預期的分析結(jié)果外,還可以根據(jù)所述的預期分析結(jié)果,獲得處理所述驗證數(shù)據(jù)的處理路徑的可-瞼證性標識。因此,可將所述處理驗證數(shù)據(jù)的處理路徑的可驗證性標識和預期分析結(jié)果存放在記分牌中。在實際應(yīng)用中,可利用0++語言定義一個二維數(shù)組,例如unsignedintRou11nfo[module—num][sub—module—num],將所述處理路徑的可驗證性標識存放在記分牌中的上述二維數(shù)組中。在將所述處理路徑的可驗證性標識保存到記分牌的同時,還可將上述可驗證性標識以列表的方式打印到調(diào)試信息記錄文件中,以備用例執(zhí)行結(jié)束后觀察用。步驟204、根據(jù)所述處理驗證數(shù)據(jù)的處理路徑的可驗證性標識,統(tǒng)計參考模型的功能覆蓋率。在預期分析結(jié)束后,可啟動對功能覆蓋率的收集。為了便于驗證人員的觀察,可由驗證人員事先對功能覆蓋率的等級進行定義,然后將定義的功能覆蓋率的等級與功能覆蓋率收集功能模塊的輸出進行對照,從而得出參考模型的功能覆蓋率。在具體應(yīng)用中,可利用emit命令啟動對功能覆蓋率的收集。功能覆蓋率收集功能模塊可用0++語言實現(xiàn)。該程序可采用如下的形式voidcoverage—gather—AA()if(Routlnfo[3][21]==10)objectA取值1;已lseobjectA取值2;if(Routlnfo[3][24]==10)objectB取值100;elseif(Routlnf。[3][24]==11)objectB取值110;已lseobjectB取值200;通過執(zhí)行上一段程序,可將收集到的處理路徑可驗證性標識Routlnfo轉(zhuǎn)化為參數(shù)object的取值。而參數(shù)object的取值正是和3全證人員所定義的功能覆蓋率的等級是對應(yīng)的。因此,在獲得所述object的值后,-瞼i正人員即可獲得功能覆蓋率的統(tǒng)計結(jié)果。在系統(tǒng)級驗證過程中,如果需要重用模塊級的收集結(jié)果,可以將屬于同一個報文的RoutInfo信息統(tǒng)一收集整理,依據(jù)系統(tǒng)級中定義的object選取方法來獲得功能覆蓋率信息。在本發(fā)明的實施例功能覆蓋率的收集方法中,為每條處理路徑來設(shè)置可驗證性標識,也就是i兌利用可'瞼證性(DesignForVerification,DFV)信息來標識每條路徑。通常是使用DFV信息來進行參考模型的調(diào)試的。而在本發(fā)明實施例中,在進行功能覆蓋率收集的過程中,通過對可驗證信息的重用,避免了利用現(xiàn)有技術(shù)"節(jié)點+探針"方式進行功能覆蓋率收集時,需要重新定義功能覆蓋率收集語句而引起的功能覆蓋率收集的不靈活的問題。因此,本發(fā)明實施例在保證了功能覆蓋率收集的效率的同時,也提高了功能覆蓋率收集的靈活性。與本發(fā)明實施例功能覆蓋率的收集方法相對應(yīng),本發(fā)明實施例還提供了一種功能覆蓋率的收集裝置。如圖3所示,本發(fā)明實施例功能覆蓋率的收集裝置包括標識設(shè)置單元301,數(shù)據(jù)獲取單元302,標識獲取單元303,以及功能覆蓋率統(tǒng)計單元304。其中,標識設(shè)置單元301,用于為參考模型中的處理路徑設(shè)置可驗證性標識;數(shù)據(jù)獲取單元302,用于獲取輸入的驗證數(shù)據(jù);標識獲取單元303,用于對所述驗證數(shù)據(jù)進行處理,獲取處理所述驗證數(shù)據(jù)的處理路徑的可驗證性標識;功能覆蓋率統(tǒng)計單元304,用于根據(jù)所述處理驗證數(shù)據(jù)的處理^各徑的可驗證性標識,統(tǒng)計參考模型的功能覆蓋率。如圖4所述,所述的標識設(shè)置單元301可包括層級劃分模塊3011,用于按照參考模型中功能模塊的層級關(guān)系,將各功能模塊分級成N個等級的功能模塊,其中N為大于等于1的整數(shù);關(guān)聯(lián)模塊3012,用于以最頂層功能模塊為根節(jié)點,建立所迷最頂層功能才莫塊下的各層級功能模塊與所述最頂層功能模塊的位置關(guān)系;路徑標識模塊3013,用于利用所述位置關(guān)系,標識參考模型中的處理路徑。與本發(fā)明功能覆蓋率收集方法的實施例中相同,所述的位置關(guān)系可以用一個樹狀結(jié)構(gòu)表示。當然,也可用其他的形式表示,只要能唯一標識處理路徑即可。如圖4所示,所述標識獲取單元303包括分析模塊3031,用于對所述參考模型進行預期分析;存儲模塊3032,用于通過記分牌存儲處理驗證數(shù)據(jù)的處理路徑的可驗證性標識以及預期分析結(jié)果。為了進一步的提高功能覆蓋率收集的效率,如圖4所示,本發(fā)明實施例功能覆蓋率的收集裝置還可包括設(shè)置單元305,用于設(shè)置處理路徑的可驗證性標識與預先定義的功能覆蓋率標識的對應(yīng)關(guān)系。如圖4所示,所述功能覆蓋率統(tǒng)計單元304包括查詢模塊3041,用于查詢處理路徑的可驗證性標識與功能覆蓋率標識的對應(yīng)關(guān)系,得到與處理驗證數(shù)據(jù)的處理路徑的可驗證性標識相對應(yīng)的功能覆蓋率標識;統(tǒng)計模塊3042,用于通過查詢模塊3041查詢得到的所述功能覆蓋率標識,統(tǒng)計出參考模型的功能覆蓋率。綜上所述,利用本發(fā)明實施例功能覆蓋率的收集方法及裝置,首先為參考模型中的處理路徑設(shè)置標識,然后在運行參考模型時,通過收集處理驗證數(shù)據(jù)的處理路徑的標識,來判斷參考模型中各處理路徑的執(zhí)行情況,從而統(tǒng)計出參考模型的功能覆蓋率。因此,與現(xiàn)有技術(shù)相比,本發(fā)明實施例在保證了功能覆蓋率收集的效率的同時,也提高了功能覆蓋率收集的靈活性。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存4諸介質(zhì)可為》茲*乘、光盤、只讀存儲記憶體(Read-0nlyMemory,ROM)或隨機存儲記憶體(RandomAccessMemory,RAM)等。當然,本發(fā)明的實施例還可有很多種,在不背離本發(fā)明的實施例精神及其和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明的實施例所附的權(quán)利要求的保護范圍。權(quán)利要求1、一種功能覆蓋率的收集方法,其特征在于,所述方法包括如下步驟為參考模型中的處理路徑設(shè)置可驗證性標識;獲取輸入的驗證數(shù)據(jù);對所述驗證數(shù)據(jù)進行處理,獲取處理所述驗證數(shù)據(jù)的處理路徑的可驗證性標識;根據(jù)所述處理驗證數(shù)據(jù)的處理路徑的可驗證性標識,統(tǒng)計參考模型的功能覆蓋率。2、根據(jù)權(quán)利要求1所述的功能覆蓋率的收集方法,其特征在于,所述為參考模型中的處理路徑設(shè)置可驗證性標識的步驟包括按照參考模型中功能模塊的層級關(guān)系,將功能模塊分級成N個等級的功能模塊,其中N為大于等于1的整數(shù);以最頂層功能模塊為根節(jié)點,建立所述最頂層功能模塊下的各層級功能模塊與所述最頂層功能模塊的位置關(guān)系;利用所述位置關(guān)系,標識參考模型中的處理路徑。3、根據(jù)權(quán)利要求1所述的功能覆蓋率的收集方法,其特征在于,所述獲取處理所述驗證數(shù)據(jù)的處理路徑的可驗證性標識的步驟包括對所述參考模型進行預期分析;通過記分牌存儲所述處理驗證數(shù)據(jù)的處理路徑的可驗證性標識以及預期分析結(jié)果。4、根據(jù)權(quán)利要求1所述的功能覆蓋率的收集方法,其特征在于,在根據(jù)所述處理驗證數(shù)據(jù)的處理路徑的可驗證性標識,統(tǒng)計參考模型的功能覆蓋率的步驟之前,所述方法還包括設(shè)置所述處理路徑的可驗證性標識與預先定義的功能覆蓋率標識的對應(yīng)關(guān)系。5、根據(jù)權(quán)利要求4所述的功能覆蓋率的收集方法,其特征在于,所述根據(jù)所述處理驗證數(shù)據(jù)的處理路徑的可驗證性標識,統(tǒng)計參考模型的功能覆蓋率的步驟具體為查詢處理路徑的可驗證性標識與功能覆蓋率標識的對應(yīng)關(guān)系,得到與處理驗證數(shù)據(jù)的處理路徑的可驗證性標識相對應(yīng)的功能覆蓋率標識;通過查詢得到的功能覆蓋率標識,統(tǒng)計出參考模型的功能覆蓋率。6、一種功能覆蓋率的收集裝置,其特征在于,所述裝置包括標識設(shè)置單元,用于為參考模型中的處理路徑設(shè)置可驗證性標識;數(shù)據(jù)獲取單元,用于獲取輸入的驗證數(shù)據(jù);標識獲取單元,用于對所述驗證數(shù)據(jù)進行處理,獲取處理所述驗證數(shù)據(jù)的處理路徑的可-驗i正性標識;功能覆蓋率統(tǒng)計單元,用于根據(jù)所述處理驗證數(shù)據(jù)的處理路徑的可驗證性標識,統(tǒng)計參考模型的功能覆蓋率。7、根據(jù)權(quán)利要求6所述的功能覆蓋率的收集裝置,其特征在于,所述標識設(shè)置單元包括層級劃分模塊,用于按照參考模型中功能模塊的層級關(guān)系,將功能模塊分級成N個等級的功能模塊,其中N為大于等于1的整數(shù);關(guān)聯(lián)模塊,用于以最頂層功能模塊為根節(jié)點,建立所述最頂層功能模塊下的各層級功能模塊與所述最頂層功能模塊的位置關(guān)系;路徑標識模塊,用于利用所述位置關(guān)系,標識參考才莫型中的處理路徑。8、根據(jù)權(quán)利要求6所述的功能覆蓋率的收集裝置,其特征在于,所述標識獲取單元包括分析模塊,用于對所述參考模型進行預期分析;存儲模塊,用于通過記分牌存儲處理驗證數(shù)據(jù)的處理路徑的可驗證性標識以及預期分析結(jié)果。9、根據(jù)權(quán)利要求6所述的功能覆蓋率的收集裝置,其特征在于,所述裝置還包括設(shè)置單元,用于設(shè)置處理路徑的可驗證性標識與預先定義的功能覆蓋率標識的對應(yīng)關(guān)系。10、根據(jù)權(quán)利要求9所述的功能覆蓋率的收集裝置,其特征在于,所述功能覆蓋率統(tǒng)計單元包括查詢模塊,用于查詢處理路徑的可驗證性標識與功能覆蓋率標識的對應(yīng)關(guān)系,得到與處理驗證數(shù)據(jù)的處理路徑的可驗證性標識相對應(yīng)的功能覆蓋率標識;統(tǒng)計模塊,用于通過查詢得到的功能覆蓋率標識,統(tǒng)計出參考模型的功能覆蓋率。全文摘要本發(fā)明實施例公開了一種功能覆蓋率的收集方法及裝置,涉及軟件驗證
技術(shù)領(lǐng)域:
,為提高對功能覆蓋率進行收集時的靈活性,并提高收集效率而發(fā)明。其中所述的方法包括為參考模型中的處理路徑設(shè)置可驗證性標識;獲取輸入的驗證數(shù)據(jù);對所述驗證數(shù)據(jù)進行處理,獲取處理所述驗證數(shù)據(jù)的處理路徑的可驗證性標識;根據(jù)所述處理驗證數(shù)據(jù)的處理路徑的可驗證性標識,統(tǒng)計參考模型的功能覆蓋率。本發(fā)明實施例主要應(yīng)用在驗證
技術(shù)領(lǐng)域:
中。文檔編號G06F17/50GK101625709SQ200810133180公開日2010年1月13日申請日期2008年7月9日優(yōu)先權(quán)日2008年7月9日發(fā)明者何忠秋,衛(wèi)劉,左細生,郭曉健申請人:華為技術(shù)有限公司