本發(fā)明涉及數(shù)字IP(知識產(chǎn)權(quán)模塊)驗證環(huán)境搭建領(lǐng)域,具體涉及基于systemverilog的隨機向量約束,以及測試結(jié)果自動對比分析;更具體地說,本發(fā)明涉及一種基于systemverilog的AHB核隨機驗證方法。
背景技術(shù):
傳統(tǒng)驗證方法靠書寫不同的測試項(test pattern),將每一種可能出現(xiàn)的情況單獨寫成一種測試項,來驗證整個AHB(注:ARM公司設(shè)計的先進(jìn)高速總線系統(tǒng))系統(tǒng)是完全符合協(xié)議要求的。該驗證方式效率較低,耗時較長,而且難以檢測各個測試項之間錯誤的關(guān)聯(lián)性。
目前較為流行的測試方法都是建立在帶約束的隨機向量生成的驗證方法學(xué)上,本設(shè)計提出了一種新型的隨機向量生成方式以及與參考值比對生成報告的方法。
傳統(tǒng)驗證方法對于完整驗證一個協(xié)議來說,顯得太過于臃腫了,需要測試多少種測試項完全是取決于負(fù)責(zé)工程師的個人水平,并且各個測試項之間關(guān)系不緊密,常常無法考慮到多種突發(fā)情況混合的情況,或者是需要擴(kuò)充測試項庫來滿足完備性。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是針對現(xiàn)有技術(shù)中存在上述缺陷,提供一種能夠?qū)崿F(xiàn)了完全隨機的測試過程以及完整的功能檢測覆蓋率的基于systemverilog(一種測試語言)的AHB核隨機驗證方法。
為了實現(xiàn)上述技術(shù)目的,根據(jù)本發(fā)明,提供了一種基于systemverilog的AHB核隨機驗證方法,包括:
第一步驟:采用激勵驅(qū)動模塊在每個周期開始時讀取激勵生成模塊的數(shù)據(jù),并傳輸至待測IP模塊;
第二步驟:采用反饋信號收集模塊在周期結(jié)束時,將激勵驅(qū)動模塊中從機的數(shù)據(jù)反饋給激勵發(fā)生模塊的主機;
第三步驟:采用激勵生成模塊根據(jù)反饋信號收集模塊提供的數(shù)據(jù),約束下一周期的允許輸入種類列表,并在下一周期開始從允許輸入種類列表中隨機挑選一種種類;
第四步驟:采用監(jiān)視校驗?zāi)K在每個周期收集待測IP的輸入輸出信息并打印到log,然后檢查該輸入輸出信息是否符合斷言要求;
第五步驟:采用斷言模塊根據(jù)IP預(yù)定時刻的狀態(tài)直接對比義判斷是否符合預(yù)定協(xié)議的要求。
優(yōu)選地,在第四步驟,生成的數(shù)據(jù)與參考數(shù)據(jù)對比并產(chǎn)生log的代碼。
優(yōu)選地,斷言模塊則是systemverilog中的斷言功能的實體化。
優(yōu)選地,主機生成向量的約束代碼。
優(yōu)選地,從機生成向量的約束代碼。
優(yōu)選地,主機響應(yīng)從機信號的代碼。
優(yōu)選地,激勵生成模塊包括:主機發(fā)生產(chǎn)生模塊、從機發(fā)生產(chǎn)生模塊、主機隊列以及從機隊列;主機隊列以及從機隊列分別繼承各自基類中的約束信息,并且按照約束條件在每個時鐘周期開始的一刻隨機生成各個信號的值。
優(yōu)選地,監(jiān)視校驗?zāi)K包括監(jiān)視校驗?zāi)K以及校驗?zāi)K,監(jiān)視模塊使用systemverilog中的語法,在每個周期開始的時候,打印所有的輸入輸出信息到log文件中;校驗?zāi)K則是在對應(yīng)時間點將斷言中發(fā)現(xiàn)的違反協(xié)議的部分同時打印在log文件中。
優(yōu)選地,斷言模塊用于將AHB總線協(xié)議翻譯為信號間邏輯關(guān)系并在每個周期開始時檢查各個輸入之間是否滿足預(yù)定條件,然后在每個周期結(jié)束時檢查各個輸出是否得到了期望值。
本發(fā)明的方法基于systemverilog,設(shè)計了滿足AHB協(xié)議的主機以及從機的隨機測試環(huán)境,并且主機支持從從機獲得響應(yīng)后調(diào)整輸出,從而實現(xiàn)了完全隨機的測試過程以及完整的功能檢測覆蓋率,并生成較為詳細(xì)的log文件方便進(jìn)行后續(xù)調(diào)試。本發(fā)明能夠快速完整的驗證AHB IP是否符合協(xié)議要求,大大提高了IP功能審核的速度和完備性。
附圖說明
結(jié)合附圖,并通過參考下面的詳細(xì)描述,將會更容易地對本發(fā)明有更完整的理解并且更容易地理解其伴隨的優(yōu)點和特征,其中:
圖1示意性地示出了根據(jù)本發(fā)明優(yōu)選實施例的基于systemverilog的AHB核隨機驗證方法的流程圖。
圖2示意性地示出了根據(jù)本發(fā)明優(yōu)選實施例的基于systemverilog的AHB核隨機驗證方法的模塊示意圖。
需要說明的是,附圖用于說明本發(fā)明,而非限制本發(fā)明。注意,表示結(jié)構(gòu)的附圖可能并非按比例繪制。并且,附圖中,相同或者類似的元件標(biāo)有相同或者類似的標(biāo)號。
具體實施方式
為了使本發(fā)明的內(nèi)容更加清楚和易懂,下面結(jié)合具體實施例和附圖對本發(fā)明的內(nèi)容進(jìn)行詳細(xì)描述。
所需檢測的IP為AHB總線IP,所以驗證方法必須能夠產(chǎn)生反饋信號并根據(jù)反饋信號來更新輸入。因此,所需的驗證環(huán)境需要能夠處理這些反饋信號并實時調(diào)整驗證條件,來檢查這些反饋以及反饋引起的輸入條件變化是否合乎協(xié)議規(guī)定。
圖1示意性地示出了根據(jù)本發(fā)明優(yōu)選實施例的基于systemverilog的AHB核隨機驗證方法的流程圖。圖2示意性地示出了根據(jù)本發(fā)明優(yōu)選實施例的基于systemverilog的AHB核隨機驗證方法的模塊示意圖。
如圖2所示,本發(fā)明的設(shè)計包含:激勵發(fā)生模塊、激勵驅(qū)動模塊、監(jiān)視校驗?zāi)K、斷言模塊以及反饋信號收集模塊。
如圖1和圖2所示,根據(jù)本發(fā)明優(yōu)選實施例的基于systemverilog的AHB核隨機驗證方法包括:
第一步驟S1:采用激勵驅(qū)動模塊在每個周期開始時讀取激勵生成模塊的數(shù)據(jù),并傳輸至待測IP模塊;
第二步驟S2:采用反饋信號收集模塊在周期結(jié)束時,將激勵驅(qū)動模塊中從機的數(shù)據(jù)反饋給激勵發(fā)生模塊的主機;
第三步驟S3:采用激勵生成模塊根據(jù)反饋信號收集模塊提供的數(shù)據(jù),約束下一周期的允許輸入種類列表,并在下一周期開始從允許輸入種類列表中隨機挑選一種種類;
第四步驟S4:采用監(jiān)視校驗?zāi)K在每個周期收集待測IP的輸入輸出信息并打印到log,然后檢查該輸入輸出信息是否符合斷言要求;優(yōu)選地,在第四步驟S4,生成的數(shù)據(jù)與參考數(shù)據(jù)對比并產(chǎn)生log的代碼。
第五步驟S5:采用斷言模塊根據(jù)IP預(yù)定時刻的狀態(tài)直接對比義判斷是否符合預(yù)定協(xié)議的要求。
其中,斷言模塊則是systemverilog中的斷言功能的實體化。
在根據(jù)本發(fā)明優(yōu)選實施例的基于systemverilog的AHB核隨機驗證方法中,主機生成向量的約束代碼;從機生成向量的約束代碼;而且在執(zhí)行過程中,主機響應(yīng)從機信號的代碼。
下面詳述各個模塊的實現(xiàn)方法。
(1)激勵生成模塊
激勵生成模塊具體細(xì)分為四個子模塊,首先有兩個基類模塊:主機發(fā)生產(chǎn)生模塊、從機發(fā)生產(chǎn)生模塊,這兩個模塊中分別定義了各個信號的約束條件,保證約束是有效的。約束使用systemverilog中的constraint語法來定義。剩下兩個模塊分別是主機隊列以及從機隊列,這兩個模塊首先會分別繼承各自基類中的約束信息,然后按照約束條件,在每個時鐘周期開始的一刻隨機生成各個信號的值。
(2)激勵驅(qū)動模塊
激勵驅(qū)動模塊是在每個時鐘周期上升沿(非時鐘周期開始),抓取主機陣列中的所有輸入信息,并將其傳送到AHB IP中,然后再時鐘周期結(jié)束時,獲取所有的輸出信息。
(3)反饋信號處理模塊
反饋信號收集模塊是在每個時鐘周期開始時,獲取IP模塊中所有輸出信號的值,同時抓取從機陣列中的所有數(shù)據(jù),并在該時鐘周期結(jié)束時發(fā)送至IP模塊。
(4)監(jiān)視校驗?zāi)K
該模塊由監(jiān)視校驗?zāi)K以及校驗?zāi)K組成。監(jiān)視模塊主要使用systemverilog中的display語法,在每個周期開始的時候,打印所有的輸入輸出信息到log(注:仿真記錄)文件中,方便未來的debug(調(diào)試)。校驗?zāi)K則是在display信息對應(yīng)時間點,將斷言中發(fā)現(xiàn)違反協(xié)議的部分同時打印在log文件中。
(5)斷言模塊
斷言模塊使用systemverilog中的assert語句,將AHB總線協(xié)議翻譯為信號間邏輯關(guān)系并在每個周期開始時檢查各個輸入之間是否滿足,然后在每個周期結(jié)束時檢查各個輸出是否得到了所想要的值。
本發(fā)明的方法基于systemverilog,設(shè)計了滿足AHB協(xié)議的主機以及從機的隨機測試環(huán)境,并且主機支持從從機獲得響應(yīng)后調(diào)整輸出,從而實現(xiàn)了完全隨機的測試過程以及完整的功能檢測覆蓋率,并生成較為詳細(xì)的log文件方便進(jìn)行后續(xù)調(diào)試。本發(fā)明能夠快速完整的驗證AHB IP是否符合協(xié)議要求,大大提高了IP功能審核的速度和完備性。
此外,需要說明的是,除非特別說明或者指出,否則說明書中的術(shù)語“第一”、“第二”、“第三”等描述僅僅用于區(qū)分說明書中的各個組件、元素、步驟等,而不是用于表示各個組件、元素、步驟之間的邏輯關(guān)系或者順序關(guān)系等。
可以理解的是,雖然本發(fā)明已以較佳實施例披露如上,然而上述實施例并非用以限定本發(fā)明。對于任何熟悉本領(lǐng)域的技術(shù)人員而言,在不脫離本發(fā)明技術(shù)方案范圍情況下,都可利用上述揭示的技術(shù)內(nèi)容對本發(fā)明技術(shù)方案作出許多可能的變動和修飾,或修改為等同變化的等效實施例。因此,凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實質(zhì)對以上實施例所做的任何簡單修改、等同變化及修飾,均仍屬于本發(fā)明技術(shù)方案保護(hù)的范圍內(nèi)。
而且還應(yīng)該理解的是,本發(fā)明并不限于此處描述的特定的方法、化合物、材料、制造技術(shù)、用法和應(yīng)用,它們可以變化。還應(yīng)該理解的是,此處描述的術(shù)語僅僅用來描述特定實施例,而不是用來限制本發(fā)明的范圍。必須注意的是,此處的以及所附權(quán)利要求中使用的單數(shù)形式“一個”、“一種”以及“該”包括復(fù)數(shù)基準(zhǔn),除非上下文明確表示相反意思。因此,例如,對“一個元素”的引述意味著對一個或多個元素的引述,并且包括本領(lǐng)域技術(shù)人員已知的它的等價物。類似地,作為另一示例,對“一個步驟”或“一個裝置”的引述意味著對一個或多個步驟或裝置的引述,并且可能包括次級步驟以及次級裝置。應(yīng)該以最廣義的含義來理解使用的所有連詞。因此,詞語“或”應(yīng)該被理解為具有邏輯“或”的定義,而不是邏輯“異或”的定義,除非上下文明確表示相反意思。此處描述的結(jié)構(gòu)將被理解為還引述該結(jié)構(gòu)的功能等效物??杀唤忉尀榻频恼Z言應(yīng)該被那樣理解,除非上下文明確表示相反意思。