本發(fā)明涉及隨機(jī)驗(yàn)證領(lǐng)域,具體地說(shuō)是一種隨機(jī)約束可選擇的基于覆蓋率驅(qū)動(dòng)的隨機(jī)驗(yàn)證方法。
背景技術(shù):
隨著工藝技術(shù)以及應(yīng)用領(lǐng)域的不斷發(fā)展,芯片的復(fù)雜度不斷提高,相對(duì)應(yīng)的,對(duì)仿真驗(yàn)證工作的要求也在不斷提高,需要進(jìn)行仿真驗(yàn)證的功能點(diǎn)越來(lái)越繁復(fù),驗(yàn)證周期的要求越來(lái)越嚴(yán)格。
現(xiàn)有的芯片設(shè)計(jì)流程分為前端設(shè)計(jì)(邏輯設(shè)計(jì))和后端設(shè)計(jì)(物理設(shè)計(jì))兩個(gè)階段。前端設(shè)計(jì)主要是以通過(guò)硬件描述語(yǔ)言(如verilog)來(lái)實(shí)現(xiàn)芯片的邏輯功能,代碼描述的正確性主要通過(guò)對(duì)這些代碼(或是由這些代碼生成的網(wǎng)表)的仿真驗(yàn)證來(lái)實(shí)現(xiàn)。在標(biāo)準(zhǔn)的仿真驗(yàn)證流程中,需要確保的前端設(shè)計(jì)涉及到的邏輯功能的功能點(diǎn),都需要通過(guò)構(gòu)造相應(yīng)的仿真場(chǎng)景,證實(shí)前段設(shè)計(jì)邏輯功能的正確性。
對(duì)復(fù)雜度較高的系統(tǒng)進(jìn)行仿真驗(yàn)證,隨機(jī)驗(yàn)證是一個(gè)重要的步驟,可以在盡可能減少人力的前提下覆蓋更多復(fù)雜甚至是預(yù)期外的場(chǎng)景。隨機(jī)化激勵(lì)可以僅用幾行代碼就能產(chǎn)生大量的激勵(lì)數(shù)據(jù),通過(guò)為設(shè)計(jì)提供隨機(jī)激勵(lì)信號(hào)來(lái)擴(kuò)大驗(yàn)證的測(cè)試空間。但是,當(dāng)設(shè)計(jì)規(guī)模很大且非常復(fù)雜時(shí),隨機(jī)驗(yàn)證空間會(huì)變得近乎無(wú)限,于是需要給隨機(jī)化過(guò)程施加一定的約束,使其按照約束生成隨機(jī)化的激勵(lì),即讓它生成的隨機(jī)化的激勵(lì)更多地落在有效的區(qū)域或者邊界內(nèi),以更快地達(dá)到功能覆蓋率的要求。因此,隨機(jī)約束的選擇也決定了隨機(jī)驗(yàn)證的效率。約束過(guò)于寬泛會(huì)造成隨機(jī)出來(lái)的場(chǎng)景大部分都是沒(méi)有意義的,約束過(guò)于嚴(yán)格又會(huì)限制隨機(jī)出的場(chǎng)景類型。
在現(xiàn)有的仿真驗(yàn)證中,定向驗(yàn)證一般是基于覆蓋率驅(qū)動(dòng)的,既通過(guò)分析對(duì)于功能點(diǎn)覆蓋(或者關(guān)鍵代碼行的覆蓋)的情況來(lái)構(gòu)造特定的激勵(lì)來(lái)進(jìn)行定向驗(yàn)證。而隨著待驗(yàn)證芯片的規(guī)模不斷擴(kuò)大,為了提高效率,縮短驗(yàn)證周期,更多的隨機(jī)驗(yàn)證被引入到基于覆蓋率驅(qū)動(dòng)的驗(yàn)證中來(lái)。通過(guò)對(duì)于覆蓋率情況的分析,添加不同的隨機(jī)約束來(lái)構(gòu)造更多的驗(yàn)證場(chǎng)景。然后,對(duì)于隨機(jī)驗(yàn)證無(wú)法覆蓋到的功能點(diǎn),再構(gòu)造特定的定向驗(yàn)證。
在基于覆蓋率驅(qū)動(dòng)的仿真驗(yàn)證中,評(píng)價(jià)隨機(jī)約束的優(yōu)劣最直觀的方法當(dāng)然是基于在該約束下的隨機(jī)仿真一段時(shí)間之后,覆蓋的功能點(diǎn)范圍。但這種做法并不實(shí)用,一是怎么確定這個(gè)比較的時(shí)間周期,時(shí)間太短的話很可能反映不出隨機(jī)約束之間的差別,時(shí)間太長(zhǎng)的話,因?yàn)槊糠N隨機(jī)約束都需要仿真出結(jié)果來(lái)比較,這一過(guò)程需要耗費(fèi)大量的時(shí)間和資源;二是待覆蓋的功能點(diǎn)之間覆蓋的難易程度實(shí)際上是有區(qū)別的,因此覆蓋功能點(diǎn)數(shù)量不能作為一個(gè)比較不同驗(yàn)證過(guò)程好壞的標(biāo)準(zhǔn)。一旦出現(xiàn)不同約束覆蓋的功能點(diǎn)范圍并不重疊的情況,就無(wú)法做出選擇了。
在現(xiàn)在主流的驗(yàn)證流程中,對(duì)于隨機(jī)約束的選擇還是更多依賴工程師對(duì)每次隨機(jī)仿真驗(yàn)證的過(guò)程進(jìn)行監(jiān)控和分析,依照隨機(jī)驗(yàn)證的進(jìn)展來(lái)手動(dòng)調(diào)整每次的隨機(jī)約束,這樣的做法雖然保證了不會(huì)有額外的時(shí)間和仿真資源的浪費(fèi),但其效率和準(zhǔn)確性完全依賴于工程師,并且隨著系統(tǒng)復(fù)雜性和規(guī)模的增長(zhǎng),面臨的挑戰(zhàn)也越來(lái)越大。
如何在隨機(jī)驗(yàn)證中對(duì)隨機(jī)約束進(jìn)行動(dòng)態(tài)的評(píng)估和選擇,減少驗(yàn)證工程師的工作量,實(shí)現(xiàn)基于覆蓋率驅(qū)動(dòng)的隨機(jī)驗(yàn)證,是需要解決的技術(shù)問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的技術(shù)任務(wù)是提供一種隨機(jī)約束可選擇的基于覆蓋率驅(qū)動(dòng)的隨機(jī)驗(yàn)證方法,來(lái)解決如何實(shí)現(xiàn)隨機(jī)約束可動(dòng)態(tài)評(píng)估和選擇的基于覆蓋率驅(qū)動(dòng)的隨機(jī)驗(yàn)證的問(wèn)題,從而實(shí)現(xiàn)隨機(jī)驗(yàn)證過(guò)程中隨機(jī)約束的動(dòng)態(tài)調(diào)整,并減少工程師的工作量。
本發(fā)明的技術(shù)任務(wù)是按以下方式實(shí)現(xiàn)的:
隨機(jī)約束可選擇的基于覆蓋率驅(qū)動(dòng)的隨機(jī)驗(yàn)證方法,包括如下步驟:
s1、定義隨機(jī)驗(yàn)證環(huán)境中所有需要的隨機(jī)約束,并定義上述隨機(jī)約束的取值范圍;
s2、將定義后的所有需要的隨機(jī)約束組合劃分為多組隨機(jī)約束組合,且每?jī)山M隨機(jī)約束組合之間不存在實(shí)際功能的完全重疊;
s3、設(shè)置能夠動(dòng)態(tài)調(diào)整的覆蓋率統(tǒng)計(jì)周期;
s4、在覆蓋率統(tǒng)計(jì)周期內(nèi)統(tǒng)計(jì)當(dāng)前仿真驗(yàn)證過(guò)程中覆蓋率的增長(zhǎng)情況,并將新增的覆蓋率累加到已有的覆蓋率數(shù)據(jù)中,以當(dāng)前仿真驗(yàn)證過(guò)程中覆蓋率的增長(zhǎng)情況作為隨機(jī)約束的評(píng)估準(zhǔn)則,對(duì)上述隨機(jī)約束組合進(jìn)行仿真驗(yàn)證。
進(jìn)一步的,步驟s3中,設(shè)置能夠動(dòng)態(tài)調(diào)整的覆蓋率統(tǒng)計(jì)周期包括設(shè)置初始的覆蓋率統(tǒng)計(jì)周期以及最大連續(xù)沒(méi)有覆蓋率增長(zhǎng)的覆蓋率統(tǒng)計(jì)周期數(shù)閾值。
進(jìn)一步的,步驟s2中,設(shè)置上述多組隨機(jī)約束組合的仿真順序;步驟s4中,在一個(gè)仿真過(guò)程中依序串行的對(duì)上述多組隨機(jī)約束組合進(jìn)行仿真驗(yàn)證。
進(jìn)一步的,步驟s4中,在一個(gè)仿真過(guò)程中隨機(jī)串行的對(duì)上述多組隨機(jī)約束組合進(jìn)行仿真驗(yàn)證。
進(jìn)一步的,步驟s2中,將上述所有需要的隨機(jī)約束組合劃分為多組隨機(jī)約束組合組,并設(shè)置每組隨機(jī)約束組合組中對(duì)應(yīng)的隨機(jī)約束組合的仿真順序;步驟s4中,每組隨機(jī)約束組合組對(duì)應(yīng)一個(gè)仿真過(guò)程,在每一個(gè)仿真過(guò)程中依序串行的對(duì)與其對(duì)應(yīng)的隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,上述多個(gè)仿真過(guò)程并行進(jìn)行。
進(jìn)一步的,步驟s2中,將上述所有需要的隨機(jī)約束組合劃分為多組隨機(jī)約束組合組;步驟s4中,每組隨機(jī)約束組合組對(duì)應(yīng)一個(gè)仿真過(guò)程,在每一個(gè)仿真過(guò)程中隨機(jī)串行的對(duì)與其對(duì)應(yīng)的隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,上述多個(gè)仿真過(guò)程并行進(jìn)行。
進(jìn)一步的,步驟s4中,隨機(jī)約束組合進(jìn)行仿真驗(yàn)證的步驟記為s4-1,其內(nèi)容為:
s4-11、在一個(gè)覆蓋率統(tǒng)計(jì)周期內(nèi)對(duì)隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,直至所述覆蓋率統(tǒng)計(jì)周期結(jié)束,
s4-12、判斷在上述覆蓋率統(tǒng)計(jì)周期內(nèi)覆蓋率的增長(zhǎng)情況,覆蓋率的增長(zhǎng)情況為覆蓋率沒(méi)有增長(zhǎng),則跳出執(zhí)行其他步驟;覆蓋率的增長(zhǎng)情況為覆蓋率有增長(zhǎng),則進(jìn)入下一個(gè)覆蓋率統(tǒng)計(jì)周期,則重新循環(huán)s4-1;
在一個(gè)仿真過(guò)程中依序串行的對(duì)上述多組隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,包括如下步驟:
s41、依序讀入一組隨機(jī)約束組合,開(kāi)始執(zhí)行隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,即調(diào)用執(zhí)行s4-1;直至s4-1跳出執(zhí)行其他步驟后,則執(zhí)行步驟s42;
s42、判斷連續(xù)沒(méi)有覆蓋率增長(zhǎng)的覆蓋率統(tǒng)計(jì)周期數(shù)是否達(dá)到最大連續(xù)沒(méi)有覆蓋率增長(zhǎng)的覆蓋率統(tǒng)計(jì)周期數(shù)閾值;如果未達(dá)到,執(zhí)行步驟s43;如果達(dá)到,執(zhí)行步驟s44;
s43、延長(zhǎng)上述覆蓋率統(tǒng)計(jì)周期,在延長(zhǎng)的覆蓋率統(tǒng)計(jì)周期內(nèi)對(duì)隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,即調(diào)用執(zhí)行s4-1;直至s4-1跳出執(zhí)行其他步驟后,則執(zhí)行步驟s42;
s44、判斷是否有未仿真驗(yàn)證的隨機(jī)約束組合,如果無(wú)未仿真驗(yàn)證的隨機(jī)約束組合,則結(jié)束;
如果有未仿真驗(yàn)證的隨機(jī)約束組合,則依序讀入下一組隨機(jī)約束組合,重新開(kāi)始執(zhí)行步驟s41。
進(jìn)一步的,步驟s4中,隨機(jī)約束組合進(jìn)行仿真驗(yàn)證的步驟記為s4-1,其內(nèi)容為:
s4-11、在一個(gè)覆蓋率統(tǒng)計(jì)周期內(nèi)對(duì)隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,直至所述覆蓋率統(tǒng)計(jì)周期結(jié)束,
s4-12、判斷在上述覆蓋率統(tǒng)計(jì)周期內(nèi)覆蓋率的增長(zhǎng)情況,覆蓋率的增長(zhǎng)情況為覆蓋率沒(méi)有增長(zhǎng),則跳出執(zhí)行其他步驟;覆蓋率的增長(zhǎng)情況為覆蓋率有增長(zhǎng),則進(jìn)入下一個(gè)覆蓋率統(tǒng)計(jì)周期,則重新循環(huán)s4-1;
在一個(gè)仿真過(guò)程中隨機(jī)串行的對(duì)上述多組隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,包括如下步驟:
s41、隨機(jī)讀入一組隨機(jī)約束組合,開(kāi)始執(zhí)行隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,即調(diào)用執(zhí)行s4-1;直至s4-1跳出執(zhí)行其他步驟后,則執(zhí)行步驟s42;
s42、判斷連續(xù)沒(méi)有覆蓋率增長(zhǎng)的覆蓋率統(tǒng)計(jì)周期數(shù)是否達(dá)到最大連續(xù)沒(méi)有覆蓋率增長(zhǎng)的覆蓋率統(tǒng)計(jì)周期數(shù)閾值;如果未達(dá)到,執(zhí)行步驟s43;如果達(dá)到,執(zhí)行步驟s44;
s43、延長(zhǎng)上述覆蓋率統(tǒng)計(jì)周期,在延長(zhǎng)的覆蓋率統(tǒng)計(jì)周期內(nèi)對(duì)隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,即調(diào)用執(zhí)行s4-1;直至s4-1跳出執(zhí)行其他步驟后,則執(zhí)行步驟s42;
s44、判斷是否有未仿真驗(yàn)證的隨機(jī)約束組合,如果無(wú)未仿真驗(yàn)證的隨機(jī)約束組合,則結(jié)束;
如果有未仿真驗(yàn)證的隨機(jī)約束組合,則隨機(jī)讀入下一組隨機(jī)約束組合,重新開(kāi)始執(zhí)行步驟s41。
進(jìn)一步的,步驟s4中,隨機(jī)約束組合進(jìn)行仿真驗(yàn)證的步驟記為s4-1,其內(nèi)容為:
s4-11、在一個(gè)覆蓋率統(tǒng)計(jì)周期內(nèi)對(duì)隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,直至所述覆蓋率統(tǒng)計(jì)周期結(jié)束,
s4-12、判斷在上述覆蓋率統(tǒng)計(jì)周期內(nèi)覆蓋率的增長(zhǎng)情況,覆蓋率的增長(zhǎng)情況為覆蓋率沒(méi)有增長(zhǎng),則跳出執(zhí)行其他步驟;覆蓋率的增長(zhǎng)情況為覆蓋率有增長(zhǎng),則進(jìn)入下一個(gè)覆蓋率統(tǒng)計(jì)周期,則重新循環(huán)s4-1;
在每一個(gè)仿真過(guò)程中依序串行的對(duì)與其對(duì)應(yīng)的多組隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,包括如下步驟:
s41、依序讀入一組隨機(jī)約束組合,開(kāi)始執(zhí)行隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,即調(diào)用執(zhí)行s4-1;直至s4-1跳出執(zhí)行其他步驟后,則執(zhí)行步驟s42;
s42、判斷連續(xù)沒(méi)有覆蓋率增長(zhǎng)的覆蓋率統(tǒng)計(jì)周期數(shù)是否達(dá)到最大連續(xù)沒(méi)有覆蓋率增長(zhǎng)的覆蓋率統(tǒng)計(jì)周期數(shù)閾值;如果未達(dá)到,執(zhí)行步驟s43;如果達(dá)到,執(zhí)行步驟s44;
s43、延長(zhǎng)上述覆蓋率統(tǒng)計(jì)周期,在延長(zhǎng)的覆蓋率統(tǒng)計(jì)周期內(nèi)對(duì)隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,即調(diào)用執(zhí)行s4-1;直至s4-1跳出執(zhí)行其他步驟后,則執(zhí)行步驟s42;
s44、判斷是否有未仿真驗(yàn)證的隨機(jī)約束組合,如果無(wú)未仿真驗(yàn)證的隨機(jī)約束組合,則結(jié)束;
如果有未仿真驗(yàn)證的隨機(jī)約束組合,則依序讀入下一組隨機(jī)約束組合,重新開(kāi)始執(zhí)行步驟s41。
進(jìn)一步的,步驟s4中,隨機(jī)約束組合進(jìn)行仿真驗(yàn)證的步驟記為s4-1,其內(nèi)容為:
s4-11、在一個(gè)覆蓋率統(tǒng)計(jì)周期內(nèi)對(duì)隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,直至所述覆蓋率統(tǒng)計(jì)周期結(jié)束,
s4-12、判斷在上述覆蓋率統(tǒng)計(jì)周期內(nèi)覆蓋率的增長(zhǎng)情況,覆蓋率的增長(zhǎng)情況為覆蓋率沒(méi)有增長(zhǎng),則跳出執(zhí)行其他步驟;覆蓋率的增長(zhǎng)情況為覆蓋率有增長(zhǎng),則進(jìn)入下一個(gè)覆蓋率統(tǒng)計(jì)周期,則重新循環(huán)s4-1;
在每一個(gè)仿真過(guò)程中隨機(jī)串行的對(duì)與其對(duì)應(yīng)的多組隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,包括如下步驟:
s41、隨機(jī)讀入一組隨機(jī)約束組合,開(kāi)始執(zhí)行隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,即調(diào)用執(zhí)行s4-1;直至s4-1跳出執(zhí)行其他步驟后,則執(zhí)行步驟s42;
s42、判斷連續(xù)沒(méi)有覆蓋率增長(zhǎng)的覆蓋率統(tǒng)計(jì)周期數(shù)是否達(dá)到最大連續(xù)沒(méi)有覆蓋率增長(zhǎng)的覆蓋率統(tǒng)計(jì)周期數(shù)閾值;如果未達(dá)到,執(zhí)行步驟s43;如果達(dá)到,執(zhí)行步驟s44;
s43、延長(zhǎng)上述覆蓋率統(tǒng)計(jì)周期,在延長(zhǎng)的覆蓋率統(tǒng)計(jì)周期內(nèi)對(duì)隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,即調(diào)用執(zhí)行s4-1;直至s4-1跳出執(zhí)行其他步驟后,則執(zhí)行步驟s42;
s44、判斷是否有未仿真驗(yàn)證的隨機(jī)約束組合,如果無(wú)未仿真驗(yàn)證的隨機(jī)約束組合,則結(jié)束;
如果有未仿真驗(yàn)證的隨機(jī)約束組合,則隨機(jī)讀入下一組隨機(jī)約束組合,重新開(kāi)始執(zhí)行步驟s41。
本發(fā)明的隨機(jī)約束可選擇的基于覆蓋率驅(qū)動(dòng)的隨機(jī)驗(yàn)證方法具有以下優(yōu)點(diǎn):本發(fā)明定義所有需要的隨機(jī)約束,通過(guò)能夠動(dòng)態(tài)調(diào)整的覆蓋率統(tǒng)計(jì)周期統(tǒng)計(jì)覆蓋率的增長(zhǎng)情況,并以覆蓋率統(tǒng)計(jì)周期內(nèi)覆蓋率的增長(zhǎng)情況為隨機(jī)約束的評(píng)估準(zhǔn)則,用以判斷當(dāng)前的隨機(jī)約束是否有效以及是否需要替換隨機(jī)約束,以融合一起的“隨機(jī)仿真-覆蓋率比較-隨機(jī)約束切換”過(guò)程代替?zhèn)鹘y(tǒng)選擇隨機(jī)約束過(guò)程的方法,大大減少了在比較和切換不同隨機(jī)約束方面的時(shí)間消耗,在盡可能減少人工干預(yù)的情況下實(shí)現(xiàn)隨機(jī)驗(yàn)證在功能點(diǎn)覆蓋方面的效率提升。
附圖說(shuō)明
下面結(jié)合附圖對(duì)本發(fā)明進(jìn)一步說(shuō)明。
附圖1為實(shí)施例1隨機(jī)約束可選擇的基于覆蓋率驅(qū)動(dòng)的隨機(jī)驗(yàn)證方法的流程框圖;
附圖2為實(shí)施例1隨機(jī)約束可選擇的基于覆蓋率驅(qū)動(dòng)的隨機(jī)驗(yàn)證方法中在一個(gè)仿真過(guò)程中依序串行的對(duì)多組隨機(jī)約束組合進(jìn)行仿真驗(yàn)證的流程框圖;
附圖3為實(shí)施例2隨機(jī)約束可選擇的基于覆蓋率驅(qū)動(dòng)的隨機(jī)驗(yàn)證方法的流程框圖;
附圖4為實(shí)施例2隨機(jī)約束可選擇的基于覆蓋率驅(qū)動(dòng)的隨機(jī)驗(yàn)證方法中在一個(gè)仿真過(guò)程中隨機(jī)串行的對(duì)多組隨機(jī)約束組合進(jìn)行仿真驗(yàn)證的流程框圖;
附圖5為實(shí)施例3隨機(jī)約束可選擇的基于覆蓋率驅(qū)動(dòng)的隨機(jī)驗(yàn)證方法的流程框圖;
附圖6為實(shí)施例4隨機(jī)約束可選擇的基于覆蓋率驅(qū)動(dòng)的隨機(jī)驗(yàn)證方法的流程框圖。
具體實(shí)施方式
參照說(shuō)明書(shū)附圖和具體實(shí)施例對(duì)本發(fā)明的隨機(jī)約束可選擇的基于覆蓋率驅(qū)動(dòng)的隨機(jī)驗(yàn)證方法作以下詳細(xì)地說(shuō)明。
實(shí)施例1:
如附圖1所示,本發(fā)明的隨機(jī)約束可選擇的基于覆蓋率驅(qū)動(dòng)的隨機(jī)驗(yàn)證方法,包括如下步驟:
(1)、明確定義隨機(jī)驗(yàn)證環(huán)境中所有需要的隨機(jī)約束,并定義上述隨機(jī)約束的取值范圍;
(2)、將步驟(1)中定義后的隨機(jī)約束劃分為多組隨機(jī)約束組合,并設(shè)置上述多組隨機(jī)約束組合的仿真順序,其中,每?jī)山M隨機(jī)約束組合之間不存在實(shí)際功能完全重疊的情況,例如,只有兩個(gè)節(jié)點(diǎn),其中每個(gè)節(jié)點(diǎn)的接口一個(gè)時(shí)鐘周期內(nèi)最多只能發(fā)送兩個(gè)請(qǐng)求的系統(tǒng)中,隨機(jī)約束a限制節(jié)點(diǎn)每個(gè)時(shí)鐘周期只發(fā)送一個(gè)請(qǐng)求,隨機(jī)約束b限制節(jié)點(diǎn)每個(gè)時(shí)鐘周期只接收一個(gè)請(qǐng)求,那么這兩個(gè)約束實(shí)際上在這個(gè)系統(tǒng)中是等價(jià)的,可以考慮將上述兩個(gè)節(jié)點(diǎn)合并;
(3)、配置能夠動(dòng)態(tài)調(diào)整的覆蓋率統(tǒng)計(jì)周期,包括設(shè)置初始的覆蓋率統(tǒng)計(jì)周期和最大連續(xù)沒(méi)有覆蓋率增長(zhǎng)的覆蓋率統(tǒng)計(jì)周期數(shù)閾值,該覆蓋率統(tǒng)計(jì)周期用于周期性的統(tǒng)計(jì)當(dāng)前仿真驗(yàn)證過(guò)程中新增的覆蓋率情況;
(4)、在覆蓋率統(tǒng)計(jì)周期內(nèi)統(tǒng)計(jì)當(dāng)前仿真驗(yàn)證過(guò)程中覆蓋率的增長(zhǎng)情況,并將新增的覆蓋率累加到已有的覆蓋率數(shù)據(jù)中,以當(dāng)前仿真驗(yàn)證過(guò)程中覆蓋率的增長(zhǎng)情況作為隨機(jī)約束的評(píng)估準(zhǔn)則,在一個(gè)仿真過(guò)程中依序串行的對(duì)上述隨機(jī)約束組合進(jìn)行仿真驗(yàn)證。
步驟(4)中,隨機(jī)約束組合進(jìn)行仿真驗(yàn)證的步驟記為s4-1,其內(nèi)容為:
s4-11、在一個(gè)覆蓋率統(tǒng)計(jì)周期內(nèi)對(duì)隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,直至所述覆蓋率統(tǒng)計(jì)周期結(jié)束,
s4-12、判斷在上述覆蓋率統(tǒng)計(jì)周期內(nèi)覆蓋率的增長(zhǎng)情況,覆蓋率的增長(zhǎng)情況為覆蓋率沒(méi)有增長(zhǎng),則跳出執(zhí)行其他步驟;覆蓋率的增長(zhǎng)情況為覆蓋率有增長(zhǎng),則進(jìn)入下一個(gè)覆蓋率統(tǒng)計(jì)周期,則重新循環(huán)s4-1;
如附圖2所示,在一個(gè)仿真過(guò)程中依序串行的對(duì)上述多組隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,包括如下步驟:
(4.1)、依序讀入一組隨機(jī)約束組合,開(kāi)始執(zhí)行隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,即調(diào)用執(zhí)行s4-1;直至s4-1跳出執(zhí)行其他步驟后,則執(zhí)行步驟(4.2);
(4.2)、判斷連續(xù)沒(méi)有覆蓋率增長(zhǎng)的覆蓋率統(tǒng)計(jì)周期數(shù)是否達(dá)到最大連續(xù)沒(méi)有覆蓋率增長(zhǎng)的覆蓋率統(tǒng)計(jì)周期數(shù)閾值;如果未達(dá)到,執(zhí)行步驟(4.3);如果達(dá)到,執(zhí)行步驟(4.4);
(4.3)、延長(zhǎng)上述覆蓋率統(tǒng)計(jì)周期,在延長(zhǎng)的覆蓋率統(tǒng)計(jì)周期內(nèi)對(duì)隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,即調(diào)用執(zhí)行s4-1;直至s4-1跳出執(zhí)行其他步驟后,則執(zhí)行步驟(4.2);
(4.4)、判斷是否有未仿真驗(yàn)證的隨機(jī)約束組合,如果無(wú)未仿真驗(yàn)證的隨機(jī)約束組合,則結(jié)束;
如果有未仿真驗(yàn)證的隨機(jī)約束組合,則依序讀入下一組隨機(jī)約束組合,重新開(kāi)始執(zhí)行步驟(4.1)。
其中,步驟(1)中,將定義好的隨機(jī)約束的取值范圍進(jìn)行限定,一方面確保驗(yàn)證環(huán)境不出現(xiàn)異常,另一方面避免隨機(jī)約束的取值冗余。例如,對(duì)于定義好的隨機(jī)約束c,用來(lái)限制每個(gè)覆蓋率統(tǒng)計(jì)周期節(jié)點(diǎn)發(fā)送請(qǐng)求的最小數(shù)量,其取值范圍應(yīng)該限定在0、1、2三種情況,如果不加限定,隨機(jī)約束取值為3,那么很可能出現(xiàn)異常。類似的,對(duì)于定義好的隨機(jī)約束d,用來(lái)限制每個(gè)覆蓋率統(tǒng)計(jì)周期節(jié)點(diǎn)發(fā)送請(qǐng)求的最大數(shù)量,取值為2以及大于2的其它值,對(duì)于系統(tǒng)功能來(lái)說(shuō)是等價(jià)的。
步驟(3)中,將覆蓋率統(tǒng)計(jì)周期設(shè)置為動(dòng)態(tài)的,是因?yàn)閷?duì)于同一個(gè)隨機(jī)驗(yàn)證環(huán)境,同一個(gè)隨機(jī)約束下,覆蓋率的增長(zhǎng)必然是個(gè)越來(lái)越趨于平緩的過(guò)程。如果設(shè)置的初始的覆蓋率統(tǒng)計(jì)周期太長(zhǎng),那些對(duì)于覆蓋率增長(zhǎng)低效甚至無(wú)效的隨機(jī)約束就需要更多的時(shí)間才能被甄別;仿真驗(yàn)證后期,如果覆蓋率統(tǒng)計(jì)周期太短,很可能錯(cuò)過(guò)真正有效的覆蓋率增長(zhǎng),因此,在覆蓋率統(tǒng)計(jì)周期設(shè)置為動(dòng)態(tài)可調(diào)整的,在具體實(shí)施過(guò)程中,將初始的覆蓋率統(tǒng)計(jì)周期設(shè)置的稍短,然后隨著覆蓋率增長(zhǎng)的減緩將覆蓋率統(tǒng)計(jì)周期逐漸延長(zhǎng)。
本發(fā)明隨機(jī)約束可選擇的基于覆蓋率驅(qū)動(dòng)的隨機(jī)驗(yàn)證方法,通過(guò)在現(xiàn)有的隨機(jī)驗(yàn)證環(huán)境中,將多個(gè)隨機(jī)約束放到一個(gè)仿真過(guò)程中串行執(zhí)行,通過(guò)能夠動(dòng)態(tài)調(diào)整的覆蓋率統(tǒng)計(jì)周期來(lái)統(tǒng)計(jì)當(dāng)前仿真驗(yàn)證過(guò)程中覆蓋率的增長(zhǎng)情況,以得到的覆蓋率增長(zhǎng)情況作為判斷當(dāng)前隨機(jī)約束是否有效以及是否需要替換隨機(jī)約束的標(biāo)準(zhǔn),將仿真驗(yàn)證和隨機(jī)約束的選擇結(jié)合為一起,減少在比較和切換不同隨機(jī)約束方面的時(shí)間消耗。
實(shí)施例2:
如附圖3所示,本實(shí)施例為在實(shí)施例1基礎(chǔ)上的進(jìn)一步改進(jìn),本實(shí)施例與實(shí)施例1的區(qū)別為:在一個(gè)仿真過(guò)程中對(duì)所有需有的隨機(jī)約束組合按照隨機(jī)的順序進(jìn)行仿真驗(yàn)證,本實(shí)施例與實(shí)施例1的區(qū)別具體為:
步驟(2)中,將步驟(1)中定義后的隨機(jī)約束劃分為多組隨機(jī)約束組合,且每?jī)山M隨機(jī)約束組合之間不存在實(shí)際功能完全重疊的情況,例如,只有兩個(gè)節(jié)點(diǎn),其中每個(gè)節(jié)點(diǎn)的接口一個(gè)時(shí)鐘周期內(nèi)最多只能發(fā)送兩個(gè)請(qǐng)求的系統(tǒng)中,隨機(jī)約束a限制節(jié)點(diǎn)每個(gè)時(shí)鐘周期只發(fā)送一個(gè)請(qǐng)求,隨機(jī)約束b限制節(jié)點(diǎn)每個(gè)時(shí)鐘周期只接收一個(gè)請(qǐng)求,那么這兩個(gè)約束實(shí)際上在這個(gè)系統(tǒng)中是等價(jià)的,可以考慮將上述兩個(gè)節(jié)點(diǎn)合并,即本實(shí)施例的步驟(2)中無(wú)需設(shè)置隨機(jī)約束組合的仿真順序;
步驟(4)、在覆蓋率統(tǒng)計(jì)周期內(nèi)統(tǒng)計(jì)當(dāng)前仿真驗(yàn)證過(guò)程中覆蓋率的增長(zhǎng)情況,并將新增的覆蓋率累加到已有的覆蓋率數(shù)據(jù)中,以當(dāng)前仿真驗(yàn)證過(guò)程中覆蓋率的增長(zhǎng)情況作為隨機(jī)約束的評(píng)估準(zhǔn)則,在一個(gè)仿真過(guò)程中隨機(jī)串行的對(duì)上述隨機(jī)約束組合進(jìn)行仿真驗(yàn)證。
如附圖4所示,步驟(4)中,隨機(jī)約束組合進(jìn)行仿真驗(yàn)證的步驟記為s4-1,其內(nèi)容為:
s4-11、在一個(gè)覆蓋率統(tǒng)計(jì)周期內(nèi)對(duì)隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,直至所述覆蓋率統(tǒng)計(jì)周期結(jié)束,
s4-12、判斷在上述覆蓋率統(tǒng)計(jì)周期內(nèi)覆蓋率的增長(zhǎng)情況,覆蓋率的增長(zhǎng)情況為覆蓋率沒(méi)有增長(zhǎng),則跳出執(zhí)行其他步驟;覆蓋率的增長(zhǎng)情況為覆蓋率有增長(zhǎng),則進(jìn)入下一個(gè)覆蓋率統(tǒng)計(jì)周期,則重新循環(huán)s4-1;
在一個(gè)仿真過(guò)程中隨機(jī)串行的對(duì)上述多組隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,包括如下步驟:
(4.1)、隨機(jī)讀入一組隨機(jī)約束組合,開(kāi)始執(zhí)行隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,即調(diào)用執(zhí)行s4-1;直至s4-1跳出執(zhí)行其他步驟后,則執(zhí)行步驟(4.2);
(4.2)、判斷連續(xù)沒(méi)有覆蓋率增長(zhǎng)的覆蓋率統(tǒng)計(jì)周期數(shù)是否達(dá)到最大連續(xù)沒(méi)有覆蓋率增長(zhǎng)的覆蓋率統(tǒng)計(jì)周期數(shù)閾值;如果未達(dá)到,執(zhí)行步驟(4.3);如果達(dá)到,執(zhí)行步驟(4.4);
(4.3)、延長(zhǎng)上述覆蓋率統(tǒng)計(jì)周期,在延長(zhǎng)的覆蓋率統(tǒng)計(jì)周期內(nèi)對(duì)隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,即調(diào)用執(zhí)行s4-1;直至s4-1跳出執(zhí)行其他步驟后,則執(zhí)行步驟(4.2);
(4.4)、判斷是否有未仿真驗(yàn)證的隨機(jī)約束組合,如果無(wú)未仿真驗(yàn)證的隨機(jī)約束組合,則結(jié)束;
如果有未仿真驗(yàn)證的隨機(jī)約束組合,則隨機(jī)讀入下一組隨機(jī)約束組合,重新開(kāi)始執(zhí)行步驟(4.1)。
實(shí)施例3:
實(shí)施例1為在一個(gè)仿真過(guò)程中對(duì)所有需有的隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,但是當(dāng)隨機(jī)約束組合的數(shù)目較多時(shí),通過(guò)一個(gè)仿真過(guò)程遍歷所有的隨機(jī)約束組合相對(duì)低效。鑒于上述問(wèn)題,本實(shí)施例在實(shí)施例1基礎(chǔ)上作了進(jìn)一步改進(jìn),如附圖5所示,本實(shí)施例與實(shí)施例1的區(qū)別具體為:
步驟(2)中,將步驟(1)中定義后的隨機(jī)約束劃分為多組隨機(jī)約束組合,且每?jī)山M隨機(jī)約束組合之間不存在實(shí)際功能完全重疊的情況,例如,只有兩個(gè)節(jié)點(diǎn),其中每個(gè)節(jié)點(diǎn)的接口一個(gè)時(shí)鐘周期內(nèi)最多只能發(fā)送兩個(gè)請(qǐng)求的系統(tǒng)中,隨機(jī)約束a限制節(jié)點(diǎn)每個(gè)時(shí)鐘周期只發(fā)送一個(gè)請(qǐng)求,隨機(jī)約束b限制節(jié)點(diǎn)每個(gè)時(shí)鐘周期只接收一個(gè)請(qǐng)求,那么這兩個(gè)約束實(shí)際上在這個(gè)系統(tǒng)中是等價(jià)的,可以考慮將上述兩個(gè)節(jié)點(diǎn)合并;并根據(jù)硬件資源狀況和隨機(jī)約束組合的數(shù)目將所有需要的隨機(jī)約束組合劃分多組隨機(jī)約束組合組,并設(shè)置每組隨機(jī)約束組合組中對(duì)應(yīng)的隨機(jī)約束組合的仿真順序;
步驟(4)中,在覆蓋率統(tǒng)計(jì)周期內(nèi)統(tǒng)計(jì)當(dāng)前仿真驗(yàn)證過(guò)程中覆蓋率的增長(zhǎng)情況,并將新增的覆蓋率累加到已有的覆蓋率數(shù)據(jù)中,以當(dāng)前仿真驗(yàn)證過(guò)程中覆蓋率的增長(zhǎng)情況作為隨機(jī)約束的評(píng)估準(zhǔn)則,每組隨機(jī)約束組合組對(duì)應(yīng)一個(gè)仿真過(guò)程,在每一個(gè)仿真過(guò)程中依序串行的對(duì)與其對(duì)應(yīng)的隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,上述多個(gè)仿真過(guò)程并行進(jìn)行。
其中,步驟(4)中在每一仿真過(guò)程中對(duì)與其對(duì)應(yīng)的隨機(jī)約束組合依序串行的進(jìn)行仿真驗(yàn)證的的具體實(shí)現(xiàn)方法與實(shí)施例1中一致。
實(shí)施例4:
實(shí)施例2為在一個(gè)仿真過(guò)程中對(duì)所有需有的隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,但是當(dāng)隨機(jī)約束組合的數(shù)目較多時(shí),通過(guò)一個(gè)仿真過(guò)程遍歷所有的隨機(jī)約束組合相對(duì)低效。鑒于上述問(wèn)題,本實(shí)施例在實(shí)施例2基礎(chǔ)上作了進(jìn)一步改進(jìn),如附圖6所示,本實(shí)施例與實(shí)施例2的區(qū)別具體為:
步驟(2)中,將步驟(1)中定義后的隨機(jī)約束劃分為多組隨機(jī)約束組合,且每?jī)山M隨機(jī)約束組合之間不存在實(shí)際功能完全重疊的情況,例如,只有兩個(gè)節(jié)點(diǎn),其中每個(gè)節(jié)點(diǎn)的接口一個(gè)時(shí)鐘周期內(nèi)最多只能發(fā)送兩個(gè)請(qǐng)求的系統(tǒng)中,隨機(jī)約束a限制節(jié)點(diǎn)每個(gè)時(shí)鐘周期只發(fā)送一個(gè)請(qǐng)求,隨機(jī)約束b限制節(jié)點(diǎn)每個(gè)時(shí)鐘周期只接收一個(gè)請(qǐng)求,那么這兩個(gè)約束實(shí)際上在這個(gè)系統(tǒng)中是等價(jià)的,可以考慮將上述兩個(gè)節(jié)點(diǎn)合并;并根據(jù)硬件資源狀況和隨機(jī)約束組合的數(shù)目將所有需要的隨機(jī)約束組合劃分多組隨機(jī)約束組合組;
步驟(4)中,在覆蓋率統(tǒng)計(jì)周期內(nèi)統(tǒng)計(jì)當(dāng)前仿真驗(yàn)證過(guò)程中覆蓋率的增長(zhǎng)情況,并將新增的覆蓋率累加到已有的覆蓋率數(shù)據(jù)中,以當(dāng)前仿真驗(yàn)證過(guò)程中覆蓋率的增長(zhǎng)情況作為隨機(jī)約束的評(píng)估準(zhǔn)則,每組隨機(jī)約束組合組對(duì)應(yīng)一個(gè)仿真過(guò)程,在每一個(gè)仿真過(guò)程中隨機(jī)串行的對(duì)與其對(duì)應(yīng)的隨機(jī)約束組合進(jìn)行仿真驗(yàn)證,上述多個(gè)仿真過(guò)程并行進(jìn)行。
其中,步驟(4)中在每一仿真過(guò)程中對(duì)與其對(duì)應(yīng)的隨機(jī)約束組合隨機(jī)串行的進(jìn)行仿真驗(yàn)證的的具體實(shí)現(xiàn)方法與實(shí)施例2中一致。
通過(guò)上面具體實(shí)施方式,所述技術(shù)領(lǐng)域的技術(shù)人員可容易的實(shí)現(xiàn)本發(fā)明。但是應(yīng)當(dāng)理解,本發(fā)明并不限于上述公開(kāi)的具體實(shí)施方式。在公開(kāi)的實(shí)施方式的基礎(chǔ)上,所述技術(shù)領(lǐng)域的技術(shù)人員可任意組合不同的技術(shù)特征,從而實(shí)現(xiàn)不同的技術(shù)方案。
除說(shuō)明書(shū)所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。